C# WinForm 异步执行耗时操作并将过程显示在界面中
private void button3_Click(object sender, EventArgs e)
{
RunAsync(() =>
{
// Just loop.
int ctr = 0;
for (ctr = 0; ctr <= 10; ctr++)
{
Thread.Sleep(2000);
RunInMainthread(() =>
{
textBox1.Text = ctr.ToString();
});
}
});
MessageBox.Show("");
} // 异步线程
public static void RunAsync(Action action)
{
((Action)(delegate()
{
action.Invoke();
})).BeginInvoke(null, null);
}
public void RunInMainthread(Action action)
{
this.BeginInvoke((Action)(delegate()
{
action.Invoke();
}));
}