码迷,mamicode.com
首页 > Windows程序 > 详细

c# 异步编程

时间:2019-11-18 14:30:37      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:http   class   异步操作   解释   completed   logs   返回值   sync   href   

异步解释:(个人专属理解,可能有bug)

比如一个异步方法里面有三句话,先执行其中第一句话,若执行到第二句话时的时间较长,

便会开辟多一个线程,一边执行异步方法里的第二句话,一边又执行异步方法外面的方法,

等到异步方法里面的第二句话完全执行完再跳进异步方法里面执行第三句话

 (这个一边。。。一边。。。就是异步的特点)

大佬总结与博客:https://www.cnblogs.com/wcrBlog/p/11690460.html

3. Task 分为两种:
1) Task,表示可以执行一个异步操作,声明如下:
public class Task : IAsyncResult, IDisposable { }
2) Task<TResult>,表示可以执行带有返回值的异步操作,声明如下:
public class Task<TResult> : Task { }

4. 异步方法的返回类型必须为 void、Task、Task<TResult> 中的其中一种。
1) void,表示无返回值,不关心异步方法执行后的结果,一般用于仅仅执行某一项任务,但是不关心结果的场景。
2) Task,表示异步方法将返回一个 Task 对象,该对象通常用于判断异步任务是否已经完成,可以使用 taskObj.Wait() 方法等待,或者 taskObj.IsCompleted 判断。
3) Task<TResult>,表示异步方法将返回一个 Task<TResult> 对象,该对象的 Result 属性则是异步方法的执行结果,调用该属性时将阻塞当前线程(异步方法未执行完成时)。

归纳一下:void 不关心结果;Task 只关心是否执行完成;Task<TResult> 不止关心是否执行完成,还要获取执行结果。

c# 异步编程

标签:http   class   异步操作   解释   completed   logs   返回值   sync   href   

原文地址:https://www.cnblogs.com/fzqm-lwz/p/11881853.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!