c# 线程
在以下几种情况下,适合于创建并管理自己的线程而不是使用线程池线程:
-
需要前台线程。
-
需要使线程具有特定的优先级。
-
您的任务会导致线程长时间被阻塞。 由于线程池具有最大线程数限制,因此大量阻塞的线程池线程可能会阻止任务启动。
-
需要将线程放入单线程单元。 所有 ThreadPool 线程均处于多线程单元中。
-
您需要具有与线程关联的稳定标识,或使某一线程专用于某一任务。
线程池线程是后台线程。 请参见前台和后台线程。 每个线程都使用默认堆栈大小,以默认的优先级运行,并处于多线程单元中。
每个进程只有一个线程池对象。
从 .NET Framework 4 开始,使用线程池最简单的方式是使用任务并行库。 默认情况下,Task 和 Task<TResult> 等并行库类型使用线程池线程运行任务。 还可通过如下方式使用线程池:从托管代码调用 ThreadPool.QueueUserWorkItem(或从非托管代码调用 CorQueueUserWorkItem)并传递表示执行任务的方法的 WaitCallback 委托。 使用线程池的另一种方式是:通过使用 ThreadPool.RegisterWaitForSingleObject 方法并传递 WaitHandle(在向其发出信号或超时时,它将调用 WaitOrTimerCallback 委托表示的方法)来对与等待操作相关的工作项排队。 线程池线程用于调用回调方法。
用对方法才有效率,做对事情才有效果
“麻烦”是自己“处理”不当的结果
“困难”是自己“学习”不够的反射
“挫折”是自己“努力”不足的代价
“麻烦”是自己“处理”不当的结果
“困难”是自己“学习”不够的反射
“挫折”是自己“努力”不足的代价
浙公网安备 33010602011771号