C# Task多线程
来自Eleven老师示例
private void btnTask_Click(object sender, EventArgs e)
{
Console.WriteLine();
Console.WriteLine("******************btnTask_Click 异步方法 start {0}********************", Thread.CurrentThread.ManagedThreadId); //Thread thread = new Thread(() => Console.WriteLine("Thread,,{0}", Thread.CurrentThread.ManagedThreadId));
//thread.Start();
//ThreadPool.QueueUserWorkItem(t => Console.WriteLine("ThreadPool,,{0}", Thread.CurrentThread.ManagedThreadId));
//new Action(() => Console.WriteLine("异步调用,,{0}", Thread.CurrentThread.ManagedThreadId)).BeginInvoke(null, null);
//Task task = Task.Run(() => Console.WriteLine("Task,,{0}", Thread.CurrentThread.ManagedThreadId));
//Parallel.Invoke()
Console.WriteLine("Eleven接到一个项目");
Console.WriteLine("沟通需求,确认需求,谈妥价格");
Console.WriteLine("签合同收取50%费用");
Console.WriteLine("高级班筛选学员,组建团队");
Console.WriteLine("需求分析,系统设计,模块划分");
Console.WriteLine("开始干活。。。。");//都是eleven老师干的 所以是主线程 //多人一起干活,,是不是 该用多线程了
TaskFactory taskFactory = new TaskFactory();
List<Task> taskList = new List<Task>();
//有个问题,如果想每个task后都输出一个进度,怎么办? taskList.Add(taskFactory.StartNew(() => this.Coding("backbone", "Client")));//.ContinueWith(
taskList.Add(taskFactory.StartNew(() => this.Coding("滑猪小板", "DB ")));
taskList.Add(taskFactory.StartNew(() => this.Coding("Adan", "WechatClient")));
taskList.Add(taskFactory.StartNew(() => this.Coding("SoWhat", "BackService")));
taskList.Add(taskFactory.StartNew(() => this.Coding("馒头哥", "Protal")));
//有没有又等待,又不卡界面的 (new 一个子线程,全包裹起来,然后waitall) taskList.Add(taskFactory.ContinueWhenAny(taskList.ToArray(), t => Console.WriteLine("第一个完成的获取红包奖励 {0}", Thread.CurrentThread.ManagedThreadId)));
taskList.Add(taskFactory.ContinueWhenAll(taskList.ToArray(), tList => Console.WriteLine("进入一个联调测试阶段 {0}", Thread.CurrentThread.ManagedThreadId))); Task.WaitAny(taskList.ToArray());//等待任意一个任务的完成,会阻塞当前线程
Console.WriteLine("某个模块开发完成后,老师部署起来准备测试"); Task.WaitAll(taskList.ToArray());//等待所有任务的完成,会阻塞当前线程
Console.WriteLine("开发验收完毕,老师收取剩余费用");
Console.WriteLine("项目结束后,老师给大家分钱"); Console.WriteLine("******************btnTask_Click 异步方法 end {0}********************", Thread.CurrentThread.ManagedThreadId);
Console.WriteLine();
}
C# Task多线程的更多相关文章
- Task多线程
Task多线程 1.首先是我们线程之间的启动. 1.这样 Task task = new Task(()=> { // System.Threading.Thread.Sleep(); Con ...
- Threading.Tasks.Task多线程 静态全局变量(字典) --只为了记录
--------------------------------------------------------------后台代码---------------------------------- ...
- Task多线程进行多进程
using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using Sys ...
- Task 实现多线程的模板
1.Task多线程简单模板 using System; using System.Collections.Generic; using System.Threading.Tasks; ...
- C# -- 使用 Task 执行多线程任务
C# -- 使用 Task 执行多线程任务 1. 使用 Task 执行多线程任务 class Program { static void Main(string[] args) { Task task ...
- 多线程Task
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- C#异步和多线程以及Thread、ThreadPool、Task区别和使用方法
本文的目的是为了让大家了解什么是异步?什么是多线程?如何实现多线程?对于当前C#当中三种实现多线程的方法如何实现和使用?什么情景下选用哪一技术更好? 第一部分主要介绍在C#中异步(async/awai ...
- .NET(C#):await返回Task的async方法
众所周知,async方法只可以返回void,Task和Task<T>. 对于返回void的async方法,它并不是awaitable,所以其他方法不能用await方法来调用它,而返回Tas ...
- 使用Task
http://www.cnblogs.com/Charltsing/p/taskpoolthread.html task默认对线程的调度是逐步增加的,连续多次运行并发线程,会提高占用的线程数,而等若干 ...
随机推荐
- Screenshot: available via screen
在使用selenium+PhantomJS进行爬虫时候报错 selenium.common.exceptions.TimeoutException: Message: Screenshot: avai ...
- ISATAP隧道方式接入IPv6和RRAS(Windows路由与远程访问)似乎是冲突的
在启用了RRAS的NAT服务器上设置ISATAP隧道,虽然能正常获取IPv6地址,但是IPv6网络实际是不通的...
- 项目中应用到的框架和技术之一——Materialize
一群做C++的老伙计搞前端开发,徒手写html和css应该会折寿..在网上找了半天,Materialize算是用起来很方便的一款前端界面框架.Google的Material Design看起来感觉还是 ...
- python元组声明要带逗号
python元组声明要带逗号 t2, t3, t4 = (2), (2,),() print(type(t2),type(t3), type(t4)) #<class 'int'> < ...
- GNS3 使用SecureCRT
"D:\SecureCRT\SecureCRT.EXE" /SCRIPT D:\SecureCRT\DyRouter.vbs /ARG %d /T /TELNET %h %p st ...
- 可设置指定时间自己主动消失的 MessageBox实现
本文主要是讲怎样实现可设置指定时间自己主动消失的 MessageBox提示框ShowMessageBoxTimeout实现: 在开发client应用程序的时候.经经常使用得WinForm中Messag ...
- 布局技巧2:合并布局(merge标签)
我们已经有文章向你描述如何使用<include />标签来重用和共享你的布局代码.这篇文章将向你阐述<merge />标签的使用以及如何与<include />标签 ...
- YTU 2705:用重载求距离
2705: 用重载求距离. 时间限制: 1 Sec 内存限制: 128 MB 提交: 208 解决: 114 题目描述 使用函数重载的方法定义两个重名函数,分别求出整型数的两点间距离和浮点型数的两 ...
- bzoj 3993 星际战争
题目大意: X军团和Y军团正在激烈地作战 在战斗的某一阶段,Y军团一共派遣了N个巨型机器人进攻X军团的阵地,其中第i个巨型机器人的装甲值为Ai 当一个巨型机器人的装甲值减少到0或者以下时,这个巨型机 ...
- bzoj2752
线段树+概率 今天这道题爆零了,奥妙重重. 其实我们可以把式子化成这样:sigma((i-l+1)*(r-i+1)*ai) 这里r减了1 然后展开,(1-l)*(r+1)*ai+(r+l)*i*ai- ...