我在带有一个按钮和一个标签的 WinForms 应用程序中有以下代码:
using System;
using System.IO;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private async void button1_Click(object sender, EventArgs e)
{
await Run();
}
private async Task Run()
{
await Task.Run(async () => {
await File.AppendText("temp.dat").WriteAsync("a");
label1.Text = "test";
});
}
}
}
这是我正在开发的真实应用程序的简化版本。我的印象是通过在我的中使用 async/awaitTask.Run
可以设置label1.Text
属性。但是,在运行此代码时,我收到我不在 UI 线程上并且无法访问控件的错误。
为什么我无法访问标签控件?