в асинхроне зависает намертво. В синхронном варианте всё выполняется моментально (настройка пока одна всего).
                  
                  
                  Звучит как дедлок, но с фига ли? Ничего замысловатого не происходит и других тредов в этот момент вроде. Хотя я не уверен как проверить.
                  
                  
                  
                  
                  
                  В отладке результирующий таск говорит Evaluation is not allowed when the thread is in 'Wait' state
                  
                  
                  
                  
                  
                  internal static async Task<IEnumerable<UserSetting>> GetAllAsync()
                  
                  
                          {
                  
                  
                              var directory = new DirectoryInfo(SettingsFolder);
                  
                  
                              var queryresult = await Task.Run(() =>
                  
                  
                  
                  
                  
                              from file in directory.GetFiles()
                  
                  
                              let value = file.OpenText().ReadToEnd()
                  
                  
                              let deserialized = JsonConvert.DeserializeObject<UserSetting>(value, SerializerSettings)
                  
                  
                              select deserialized
                  
                  
                              );
                  
                  
                              return queryresult;
                  
                  
                          }
                  
                  
                
зачем вам Task.Run внутри Task? и вам надо уж использовать await ReadToEndAsync()
https://stackoverflow.com/questions/15975499/task-run-freezing
Обсуждают сегодня