@Jek_Rock
Java developer

Почему данный код блокирует UI?

Почему данный код блокирует UI, хотя должен выполняться асинхронно?
private async void MenuOpen_Click(object sender, RoutedEventArgs e) {
            Microsoft.Win32.OpenFileDialog fileDialog = new Microsoft.Win32.OpenFileDialog();
            fileDialog.DefaultExt = ".txt";
            fileDialog.Filter = "Text file|*.txt|All files|*.*";
            fileDialog.Multiselect = false;

            if (!(bool)fileDialog.ShowDialog())
                return;

            string content = String.Empty;

            using (var file = new StreamReader(fileDialog.FileName)) {
                content = await file.ReadToEndAsync();
            }

            tbLeft.Text = content;
        }
  • Вопрос задан
  • 343 просмотра
Решения вопроса 1
@none7
А дело точно не в строчке tbLeft.Text = content; ? Обычные TextBox плохо переваривали большие объёмы текста. И эта строчка точно будет блокировать UI.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Mercury13
Программист на «си с крестами» и не только
Потому что OpenFileDialog модальный.
Добавили ключевое слово async и ждёте другого поведения стандартного диалога Windows?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы