Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改操作的线程优先级_C#_Multithreading_Thread Priority - Fatal编程技术网

C# 更改操作的线程优先级

C# 更改操作的线程优先级,c#,multithreading,thread-priority,C#,Multithreading,Thread Priority,我有一个动作 var act = new Action(() => { while (true) { //Some Codes! } }); act.BeginInvoke(null, null); 如何提高运行此操作的线程的优先级? 我知道如何在简单的线程中完成它 Thread.CurrentThread.Priority = ThreadPriority.Lowest; 但是操作的优先级如何?BeginInvoke会将您的任务排入线程池。您无法控制标

我有一个动作

var act = new Action(() =>
{
   while (true)
   {
     //Some Codes!
   }
 });
 act.BeginInvoke(null, null);
如何提高运行此操作的线程的优先级? 我知道如何在简单的线程中完成它

Thread.CurrentThread.Priority = ThreadPriority.Lowest;

但是操作的优先级如何?

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

警告:更改线程池线程的优先级被认为是危险的。进一步阅读:


如果你能解释你想要达到的目标,也许你能得到更好的解决方案

不清楚你想做什么。除此之外,不要手动更改线程的优先级,这意味着很少。如果你有性能问题,那么看看你是否可以改进代码,而不是玩线程优先级,因为行为是未定义的,并且可以变。没有意义,线程什么都不做。我重写我的问题是为了让它更清楚,因为我的程序有两个线程,我想让一个更高!我试着为一个有两种不同动作的仿人机器人编写一些代码,一个用于运动控制,一个用于视觉处理。有时由于缺乏资源,它会下降,我想如果我改变运动线程的优先级,它可能会解决问题!线程池用于在资源可用时可以在后台执行的代码。对于那些需要保证执行的事情,您应该启动一个专用线程来运行它们。