2017-08-24 5 views
2

スレッディングについてよくわかりません。私は単に私が100回の間隔であるtimer1_Tick関数内でこのwhileループを入れたときに、UIでタイマ1を持っている:ループが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

countはシリアルポート – sabsab

+0

@sabsabから読み取っているバイトですが、ループの前に値を設定していて、ループ内の値を変更することはありません。したがって、値> 0に設定されると、ループ内で永遠に> 0になります。 –

+2

ありがとう、それはあなたの答えと同じくらい簡単です:) – sabsab

関連する問題