【发布时间】:2015-05-16 22:25:28
【问题描述】:
以下代码不会更改文本并停止执行任务
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "Test";
Task.Run(() => MyAsyncMethod());
}
public async Task MyAsyncMethod()
{
label1.Text = "";
//everything from here on will not be executed
}
如果您可以将 async 与 UI 一起使用会非常方便
【问题讨论】:
-
您可以尝试在异步任务中询问“label1.InvokeRequired”并按字面意思调用吗?
-
好的 InvokeRequired 返回 true。
-
您正在尝试从不是 UI 线程的线程修改 UI 控件。试试
label1.Text = "test";await MyAsyncMethod();label1.Text="";
标签: c# user-interface asynchronous label task