Advertisement

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)

还没有任何评论哟~