我试图在等待后更新UI。直到我在Task.Delay
之前打开表单,然后发现线程ID发生变化,一切都很好。
谁能告诉我这里出什么问题了?
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();
}
答案 0 :(得分:0)
我无法复制它。我添加了一个按钮,然后单击以调用TestTaskThread
方法。线程ID仍为1。
private async void btnShowDialogFromAsync_Click(object sender, EventArgs e)
{
await TestTaskThread();
}
我还将方法的返回值更改为Task
。
复制它的唯一方法是将await
配置为跳过恢复上下文。
await Task.Delay(7).ConfigureAwait(false);