我正在等待后尝试更新 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();
}
我无法复制它。我添加了一个按钮,然后单击时调用TestTaskThread
方法。线程 ID 保持为 1。
private async void btnShowDialogFromAsync_Click(object sender, EventArgs e)
{
await TestTaskThread();
}
我还将方法的返回值更改为 Task
。
复制它的唯一方法是将await
配置为跳过还原上下文。
await Task.Delay(7).ConfigureAwait(false);