日期:2014-05-17  浏览次数:20761 次

关于线程优先级的问题
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时间,并不意味着一定要先执行完优先级较高的线程,才会执行优先级较低的线程;线程的优先级跟线程执行的顺序无关
------解决方案--------------------
优先级只是对操作系统调度线程的建议,并不能决定最终调度的结果。