-
- thread Pool使用
-
AutoResetEvent使用
在threadPool调用方法中,传入参数AutoResetEvent,当线程池中调用方法执行完成时,AutoResetEvent调用set() --通知等待线程。
using System; using System.Threading; namespace Pattern03 { class Program { static void Main(string[] args) { Console.WriteLine($"线程 id:{Thread.CurrentThread.ManagedThreadId}"); AutoResetEvent autoReset = new AutoResetEvent(false); Console.WriteLine($"线程 id:{Thread.CurrentThread.ManagedThreadId} 使用threadPool"); //入队一个方法 ThreadPool.QueueUserWorkItem(AsyncMethod,autoReset); //等待线程池中方法执行完成 autoReset.WaitOne(); Console.WriteLine($"线程 id:{Thread.CurrentThread.ManagedThreadId} 线程池入队方法执行完成"); Console.ReadKey(); } static void AsyncMethod(object state) { Console.WriteLine($"线程id:{Thread.CurrentThread.ManagedThreadId} 进入AsyncMethod代码段"); Thread.Sleep(1000);//模拟耗时操作。 Console.WriteLine($"线程id:{Thread.CurrentThread.ManagedThreadId} AsyncMethod 完成"); ((AutoResetEvent)state).Set(); } } }
-
线程学习(三) Thread Pool使用
最新推荐文章于 2021-02-06 17:36:35 发布