■6840 / ) |
Re[10]: 別スレッドでShowDialogしたフォームのクローズ |
□投稿者/ れい (57回)-(2007/08/24(Fri) 17:50:56)
|
■No6822 (困ったちゃん さん) に返信 > 百回程度試行してみましたが、上記のコードだとフリーズすることはありませんでした。 > しかし原コードでも、ObjectDisposedExceptionがキャッチされずにフリーズしていたので、 > 果たして『それで万全なのかが確信できない』というわけです。 > 必ず例外を投げてくれるのなら(エレガントとは言えませんけど^^;)安心なのですが。
投げる側のスレッドがフラグをチェックしてInvokeメソッドに入って内部で実際にメッセージを投げるまでの間に、 受ける側のスレッドがClosingに入ってそのままWM_DESTROY(Close)まで全部処理できることは たぶん稀ですので、100回程度ではだめでしょう。 この手の問題はメモリが足りないときとか、遅いPCを使ったりとかした場合にのみたまにエラーが出たりするので かなり厄介です。
そもそもClosingイベントが呼ばれないであるメッセージで突然フォームが死ぬ場合もありえるので (WM_DESTROYやWM_QUITを投げられた場合など。) やっぱりInvokeはダメダメだと思います。
|
|