当前位置:编程学习 > C#/ASP.NET >>

关于C#线程,线程池和并行运算的简单使用和对比

参考:

http://msdn.microsoft.com/zh-cn/library/system.threading.threadpool(VS.80).aspx

http://www.codeproject.com/KB/threads/threadtests.aspx

http://www.codeproject.com/KB/threads/smartthreadpool.aspx

http://blog.zhaojie.me/2009/07/thread-pool-1-the-goal-and-the-clr-thread-pool.html  (老赵的浅谈线程池上中下三篇)

Jeffrey Richter <<CLR via C#>> 3rd Edition

 

先大概看一下控制台应用程序的Main方法的主要代码:

 
001 static bool done = false;
002 static decimal count2 = 0;
003 static int threadDone = 0;//标志启用线程数?
004 static System.Timers.Timer timer = new System.Timers.Timer(1000);
005  
006 static decimal[] threadPoolCounters = new decimal[10];
007 static Thread[] threads = new Thread[10];
008 static System.Timers.Timer[] threadTimers = new System.Timers.Timer[10];
009  
010 static void Main(string[] args)
011 {
012     timer.Stop();
013     /*当 AutoReset 设置为 false 时,Timer 只在第一个 Interval 过后引发一次 Elapsed 事件。
014      若要保持以 Interval 时间间隔引发 Elapsed 事件,请将 AutoReset 设置为 true。*/
015     timer.AutoReset = false;
016     timer.Elapsed += new ElapsedEventHandler(OnTimerEvent);//当timer.Start()时,触发事件
017     decimal total = 0;
018  
019     // raw test
020     decimal count1 = SingleThreadTest();//单一线程,一跑到底
021     Console.WriteLine("Single thread count = " 补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,