C#如何使用异步编程

 我来答
百度网友5e7d60f
2017-05-16 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9522
采纳率:91%
帮助的人:1450万
展开全部

C#异步方法:提供了一种简便方式完成可能需要长时间运行的工作,而不必阻止调用方的线程。 异步方法的调用方可以继续工作,而不必等待异步方法完成。

代码实现过程:

/// <summary>      

/// 异步方法,解决长等待问题       

/// </summary>     

/// <param name="action"></param>   

/// <param name="entity"></param>     

/// <returns></returns>  

public async Task AsyncAdd(Func<FAQ_Info, VMessage> fun, FAQ_Info entity)    

{        

return System.Threading.Tasks.Task.Run(() =>

//解决UI阻塞,这种并不是真正的并行执行,而是开了一个新线程异步执行代码段

//主UI不会等待它返回结果的,如果要与主线程合作开发,即并行开发,需要加await来获取Task的返回结果         

{               

fun(entity);      

});


}

异步的三种模式:

1. 等待模式,在发起了异步方法以及做了一些其它处理之后,原始线程就中断,并且等待异步方法完成之后再继续。

2. 轮询模式,原始线程定期检查发起的线程是否完成,如果没有则可以继续做一些其它的事情。

3. 回调模式,原始线程一直在执行,无需等待或检查发起的线程是否完成。在发起的线程中的引用方法完成之后,发起的线程就会调用回调方法,由回调方法在调用EndInvoke之前处理异步方法的结构。

意法半导体(中国)投资有限公司
2023-06-12 广告
单片机编程是指使用单片机编程语言,如C语言,来编写单片机的程序代码,以控制单片机的行为。这种技术在电子工程、计算机科学和电子通信等领域中被广泛应用。单片机编程的主要任务是设计和实现单片机的程序,包括定义单片机的指令系统、编写程序代码、处理器... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式