关于线程优先级的问题
private void Form1_Load(object sender, EventArgs e)
{
Thread myThread1 = new Thread(threadOut);
myThread1.Priority = ThreadPriority.Lowest;
Thread myThread2 = new Thread(threadInput);
myThread2.Priority = ThreadPriority.Highest;
myThread1.Start();
myThread2.Start();
}
public void threadOut()
{
MessageBox.Show("主线程1开始运行");
}
public void threadInput()
{
MessageBox.Show("主线程2开始运行");
}
我已经设置了2个线程的优先权,为什么每次执行结果会有差异,有的时候是“主线程1开始执行”最先执行,有时候是“主线程2开始执行”最先执行,我是新手,求解啊…………
------解决方案--------------------优先级较高的线程占有更多的CPU时间,并不意味着一定要先执行完优先级较高的线程,才会执行优先级较低的线程;线程的优先级跟线程执行的顺序无关
------解决方案--------------------优先级只是对操作系统调度线程的建议,并不能决定最终调度的结果。