循环在timer1_Tick函数内时出现C#错误

时间:2017-08-24 10:26:37

标签: c# multithreading timer

我对线程知之甚少。我只是在UI中有一个timer1,当我把这个while循环放在timer1_Tick函数中时,它是100个间隔:

count = port.BytesToRead;
while (count > 0)
{
  // get the new byte:
  char inchar = (char)port.ReadChar();
  // add it to the inputstring:
  inputString += inchar;
  // if the incoming character is a newline, set a flag
  // so the main loop can do something about it:
  if (inchar == '\n')
  {
     stringComplete = true;
  }
}

程序停止响应任何UI输入。我知道问题是关于线程和UI线程但我对线程的了解很少,正如我所说。
那么这个问题的解决方案是什么

1 个答案:

答案 0 :(得分:3)

您没有递减count变量,因此while(count > 0)永不退出。