NotifyIcon その2

Form はあるけど表示しない。
NotifyIcon だけを表示したいプログラムを作成した。
バルーンチップが閉じられたら、Form を閉じてプロセスが終了すように。


notifyIcon1.ShowBalloonTip(10000);
Thread.Sleep(10000);
と最初はやっていた。
これだと必ず10秒待ってから画面が閉じられる。
バルーンチップが閉じたら、画面も閉じたいのだ。

BalloonTipClicked
BalloonTipClosed
こんなイベントがあるではないか。
これだ。バルーンチップが閉じるのが分かるぞ。

notifyIcon1.ShowBalloonTip(10000);
while (true) {
thread.Sleep(100);
if (_stopFlg)
break;
}
private bool _stopFlg = false;
BalloonTipClicked イベント
_stopFlg = true;
BalloonTipClosed イベント
_stopFlg = true;
とやってみたら、どちらのイベントも発生しないで、無限ループになってしまった。
あれやこれやいろいろ試してみました。
で、これ

notifyIcon1.ShowBalloonTip(10000);
while (true) {
thread.Sleep(100);
Application.DoEvents();
if (_stopFlg)
break;
}
private bool _stopFlg = false;
BalloonTipClicked イベント
_stopFlg = true;
BalloonTipClosed イベント
_stopFlg = true;
Application.DoEvents() が必要でした。
Application.DoEvents() はいろいろと弊害もあるのですが。。。