首页 > 代码库 > 线程的学习-1,控制线程数量,模仿的
线程的学习-1,控制线程数量,模仿的
学会了控制线程数量,目前感觉使用c#5.0的新特性灵活性不如之前的线程使用,所以不是很喜欢用新特性,不过也可能是我还没熟悉,等以后熟悉清楚了,再评价好不好,今天先搞一搞控制线程数量
public class TaskTest { public void Test() { List<Task> list = new List<Task>(); TaskFactory taskFactory = new TaskFactory(); for (int i = 0; i < 100; i++) { list.Add(taskFactory.StartNew(this.ClacNum)); if(list.Count>8) { //重新赋值,把未完成的,没有异常的,没有取消的线程任务重新绑定到list list = list.Where(x => !x.IsCompleted && !x.IsCanceled && !x.IsFaulted).ToList(); //等待其中一个线程任务的完成 Task.WaitAny(list.ToArray()); } } } private void ClacNum() { long num = 0; for (int i = 0; i < 1000; i++) { num += i; Thread.Sleep(4); } Console.WriteLine("当前线程:{0},返回值为:{1}", Thread.CurrentThread.ManagedThreadId, num); } }
线程资源可以重复使用,不会新开线程
线程的学习-1,控制线程数量,模仿的
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。