2017-08-24 92 views
2

我对线程知之甚少。我只是有在UI Timer1的,当我把这个while循环的timer1_Tick函数,它是100个区间内:当一个循环在timer1_Tick函数内时出现C#错误

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 input.I知道问题是关于线程和UI线程,但我没有什么线程知识,正如我所说的。
那么这样的问题的解决方案是什么

+0

您的计时器是否启用? – imsome1

+0

@ imsome1是的这是 – sabsab

+0

@Dmitry是啊,这就是我现在正在做的事情:P – sabsab

回答

3

你不会递减你的count变量,所以while(count > 0)永远不会退出。

+0

计数是我从串口读取的字节数 – sabsab

+0

@sabsab是的,但是您在循环之前设置该值,并且永远不会更改循环内的值。因此,一旦它被设置为> 0的值,它将永远在循环中> 0。 –

+2

感谢人,它就像你的回答一样简单:) – sabsab

相关问题