У меня есть следующий код в приложении 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/wait в моем Task.Run
, я могу установить свойство label1.Text
. Однако при запуске этого кода я получаю сообщение об ошибке, что я не включен в поток пользовательского интерфейса, и я не могу получить доступ к элементу управления.
Почему я не могу получить доступ к элементу управления меткой?