C#中控制线程池的执行顺序

在使用线程池时,当用线程池执行多个任务时,由于执行的任务时间过长,会导制两个任务互相执行,如果两个任务具有一定的操作顺序,可能会导制不同的操作结果,这时,就要将线程池按顺序操作。下面先给一段代码,该代码是不按顺序对线程池进行操作的,代码如下:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { AutoResetEvent autoEvent = new AutoResetEvent(false); ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadMethod), autoEvent); ThreadPool.QueueUserWorkItem(new WaitCallback(WorkMethod), autoEvent); Console.ReadLine(); } static void ThreadMethod(object stateInfo) { for (int i = 0; i < 100;i++ ) Console.WriteLine("ThreadOne, executing ThreadMethod, " + "is {0}from the thread pool.", Thread.CurrentThread.IsThreadPoolThread ? "" : "not "); } static void WorkMethod(object stateInfo) { for (int i = 0; i < 100; i++) Console.WriteLine("ThreadTwo, executing WorkMethod"); } } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfsjj.html