/*BackgroundWorker*/
1: using (var appinstruction = new BackgroundWorker())
{
appinstruction.DoWork += appinstruction_DoWork;
appinstruction.RunWorkerCompleted += appinstruction_RunWorkerCompleted;
appinstruction.RunWorkerAsync();
}
2: //执行
void appinstruction_DoWork(object sender, DoWorkEventArgs e)
{
//代码
}
//完成
void appinstruction_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
//代码
}
/*IAsyncResult*/
IAsyncResult result = this.BeginInvoke(new MethodInvoker(() =>
{
//代码
}));
result.AsyncWaitHandle.WaitOne(-1, false);
3/*BeginInvoke*/
this.BeginInvoke((MethodInvoker)delegate
{
//代码
});
c#常用的三种异步写法
于 2016-12-08 18:34:06 首次发布