C# Winform Visual Studio アプリケーションは、数時間使用すると「応答なし」でハングし、アプリケーションを閉じる Windows ポップアップが表示されます。これは、コンピューターへのリモート デスクトップを開始するとき、または最小化後にアプリケーション ウィンドウにフォーカスを移動するときによく発生します。
アプリケーションは、フォーカスを合わせるときに CPU をフルに消費し、このプロセスで次第に遅くなります。
Windows フォームは、RS232 経由でデバイスを制御するためのマルチスレッド GUI です。デバッグ出力用のテキストボックスを 1 秒間に数回使用します。テキストボックスへの書き込みは、非同期メソッドで行われます。
void asyncAppendTextBox(TextBox tb, string str)
{
if (IsHandleCreated)
{
tb.BeginInvoke(
new Action(() =>
{
tb.AppendText(str + appLifetimeSW.ElapsedMilliseconds.ToString());
}
));
}
}