Task
来源:互联网 发布:js 删除预览图片 编辑:程序博客网 时间:2024/06/08 06:18
Task启动的线程是后台线程,不过可以在调用线程中调用task.Wait()方法,使应用程序等待task执行完毕
static void Main(string[] args){ Console.WriteLine("主线程启动"); //.NET 4.5引入了Task.Run静态方法来启动一个线程 Task.Run(() => { Thread.Sleep(1000); Console.WriteLine("Task1启动"); }); //Task启动的是后台线程,假如要在主线程中等待后台线程执行完毕,可以调用Wait方法 Task task = Task.Run(() => { Thread.Sleep(500); Console.WriteLine("Task2启动"); }); task.Wait(); Console.WriteLine("主线程结束"); Console.ReadLine(); Console.Clear();}
Task<TResult>是Task的泛型版本,这两个之间的最大不同是Task<TResult>可以有一个返回值TResult
Task<TResult>的实例对象有一个Result属性,当在Main方法中调用task.Result的时候,将等待task执行完毕并得到返回值,这里的效果跟调用task.Wait()是一样的,只是多了一个返回值
static void Main(string[] args){ Console.WriteLine("主线程开始"); Task<string> task = Task<string>.Run(() => { Thread.Sleep(1000); return Thread.CurrentThread.ManagedThreadId.ToString(); }); Console.WriteLine(task.Result); Console.WriteLine("主线程结束");}
0 0
- TASK
- Task
- Task
- TASK
- task
- Task
- task
- Task,
- task
- Task
- task
- task
- Task
- Task
- Task
- task
- TASK
- task
- PHP命令行下的世界
- hibernate进阶之组件映射
- Spring AOP和事务的相关陷阱
- cocos2d-x从win32编译到android出现闪退和无法编译状况
- 自己搭建网站选用服务器的方法
- Task
- 通过Spring Mail Api发送邮件
- 1049. Counting Ones (30)
- Leetcode 83. Remove Duplicates from Sorted List
- clang源码——CompilerInstance和Preprocessor(二)
- 页面切换的3种实现
- 【CG物理模拟系列】开篇:介绍(下)
- linux 计划任务crontab,定时打开一个图形界面
- cf448C