异步多线程的几种控制顺序的方式♛

异步多线程

1、 回调:将后续动作通过回调参数传递进去,子线程完成计算后,去调用这个回调委托
IAsyncResult asyncResult = null;//是对异步调用操作的描述
AsyncCallback callback = ar =>
{
Console.WriteLine(“这里是回调函数”);
};
asyncResult = action.BeginInvoke(“第二个参数传入回调函数”, callback, null);

2、通过asyncResult.IsCompleted属性等待,卡界面
while (!asyncResult.IsCompleted)//未完成进入循环内部
{
//做一些其他操作
}
3、WaitOne()等待,即时等待 限时等待,使用方法如下:
asyncResult.AsyncWaitHandle.WaitOne();//直接等待任务完成
asyncResult.AsyncWaitHandle.WaitOne(-1);//一直等待任务完成
asyncResult.AsyncWaitHandle.WaitOne(1000);//最多等待1000ms,超时就不等了

4、EndInvoke 即时等待,而且可以获取委托的返回值 一个异步操作只能EndInvoke 一次。
声明委托action,指定方法后调用如下:
action.EndInvoke(asyncResult);//等待线程完成后,回归主线程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值