我有一个动作,
var act = new Action(() =>
{
while (true)
{
//Some Codes!
}
});
act.BeginInvoke(null, null);
如何提高运行此操作的线程的优先级?我知道如何在简单的线程中做到这一点。
Thread.CurrentThread.Priority = ThreadPriority.Lowest;
但是一个动作的优先级呢?
我有一个动作,
var act = new Action(() =>
{
while (true)
{
//Some Codes!
}
});
act.BeginInvoke(null, null);
如何提高运行此操作的线程的优先级?我知道如何在简单的线程中做到这一点。
Thread.CurrentThread.Priority = ThreadPriority.Lowest;
但是一个动作的优先级呢?
BeginInvoke 会将您的任务排队到 ThreadPool。您无法控制标准 .NET 线程池的调度。只有在代码实际执行后才能控制线程。
警告:更改 ThreadPool 线程的优先级被认为是危险的。进一步阅读:.NET:为什么不改变线程池(或任务)线程的优先级?
如果您可以解释您要达到的目标,也许您可以获得更好的解决方案?