C#学习笔记的任务操作
发布时间
阅读量:
阅读量
通过引入线程机制,能够较为便捷地实现异步操作。然而,线程模型存在一定的局限性,即难以处理函数调用后的返回结果。在多个线程间进行数据交换时,往往面临较大的实现难度。而任务机制则有效克服了这一问题。
完整代码可参考:https://github.com/techstay/csharp-learning-note 。
任务创建与执行流程
有返回值和没有返回值的任务
若需构建一个不返回任何结果的任务,只需向Task类的构造函数中传入一个参数与返回值皆为空的委托(即Action委托)即可。完成Task对象的创建后,可通过调用Start方法启动任务的执行过程,其操作方式与在Thread上调用Start方法类似。此时任务将进入异步执行状态。
如需等待任务执行完毕,可调用Wait方法,该方法会阻塞当前线程直至任务完成。此外,WaitAny和WaitAll方法均可接收一个Task数组作为参数,其中WaitAny方法会在调用线程上阻塞,直至任意一个Task完成;而WaitAll方法则会持续阻塞调用线程,直到所有任务均执行完毕。
同时,在创建Task时还可以通过向其构造函数传递一个TaskCreationOptions枚举参数,以此来对Task的生成及运行过程进行控制。具体信息可查阅MSDN相关文档。
Task task1 = new Task(()
全部评论 (0)
还没有任何评论哟~
