私のWinFormsアプリケーションでは、X秒間画面にとどまる小さなカスタムダイアログをポップアップして消える必要があります。だから、適切な時間が経過したら、System.Threading.Timerを使用して_dialog.Close()メソッドを呼び出します。これは、もちろん、私が"InvokeRequired BeginInvoke"ダンスの全体をやらなければならないことを意味します。これは実際問題ではありません。winformが正確にX秒で終了するようにする方法
しかし、私のメインスレッドは、BeginInvokeが呼び出されるまでに何が起こっているのかを知っている可能性があります。それはかなり長い間、ウィンドウを閉じることを回避できないかもしれません。私はミリ秒の通知でウィンドウを閉じる必要はありませんが、1秒程度で本当に必要です。
私の質問は、BeginInvokeが実際にメインスレッドにどのように機能するのか、この奇妙な制限を回避するにはどうすればよいですか?
なぜあなたは.visible = falseを使用して閉じないのですか? –
UIスレッドがそのような遅延を引き起こしていることは何ですか? – BobbyShaftoe
@Daniel、visibleプロパティの設定にはClose()の呼び出しと同じ問題があります。 – BobbyShaftoe