Идентификатор потока задачи изменяется после вызова диалога - PullRequest
1 голос
/ 11 апреля 2019

Я пытаюсь обновить интерфейс после ожидания.Это работало хорошо, пока я не открыл форму до Task.Delay, затем я увидел, что идентификатор потока изменился.

Кто-нибудь может сказать, что здесь не так?

private async void TestTaskThread()
{       
    this.Text += " : " + Thread.CurrentThread.ManagedThreadId.ToString();

    Form2 form2 = new Form2();
    form2.ShowDialog();
    await Task.Delay(7);
    this.Text += " : " + Thread.CurrentThread.ManagedThreadId.ToString();
}

1 Ответ

0 голосов
/ 11 апреля 2019

Я не могу повторить это.Я добавил кнопку и при нажатии вызываю метод TestTaskThread.Идентификатор потока остается равным 1.

private async void btnShowDialogFromAsync_Click(object sender, EventArgs e)
{
    await TestTaskThread();
}

Я также изменил возвращаемое значение метода на Task.

Единственный способ его реплицировать - настроить await для пропускавосстановление контекста.

await Task.Delay(7).ConfigureAwait(false);
...