1.异步可以理解成简单版的线程,依靠委托实现
2.回调函数是异步执行完后马上执行的函数
样例:
myDel mydel = null;
private void button1_Click(object sender, EventArgs e)
{
// mydel = ExecuteTask;
this.mydel = (int num) =>
{
System.Threading.Thread.Sleep(3000);
return num * num;
};
for (int i = 0; i < 10; i++)
{
mydel.BeginInvoke(i, myCallBack, i);
}
}
//回调函数
void myCallBack(IAsyncResult result)
{
int r = mydel.EndInvoke(result);
Console.WriteLine($"第{result.AsyncState.ToString()}个的结果是{r}");
}
//给委托用的函数
int ExecuteTask(int num)
{
System.Threading.Thread.Sleep(3000);
return num * num;
}
注:myDel是int类型的委托