3

我有一个动作,

var act = new Action(() =>
{
   while (true)
   {
     //Some Codes!
   }
 });
 act.BeginInvoke(null, null);

如何提高运行此操作的线程的优先级?我知道如何在简单的线程中做到这一点。

Thread.CurrentThread.Priority = ThreadPriority.Lowest;

但是一个动作的优先级呢?

4

1 回答 1

4

BeginInvoke 会将您的任务排队到 ThreadPool。您无法控制标准 .NET 线程池的调度。只有在代码实际执行后才能控制线程。

警告:更改 ThreadPool 线程的优先级被认为是危险的。进一步阅读:.NET:为什么改变线程池(或任务)线程的优先级?

如果您可以解释您要达到的目标,也许您可​​以获得更好的解决方案?

于 2012-03-17T06:11:00.993 回答