1
普通のbutton.Click
イベントがあるとします。別のスレッドで何かを実行しているときにUIスレッドがブロックされるのはなぜですか?
このイベントの内部からUI要素にアクセスしようとすると、望ましくない動作が発生したり、例外(デバッグ時)になってしまう可能性があります。このようなシナリオでの通常の例外は、...cannot access UI elements from thread different than they were created in
です。
イベントで時間がかかる操作を実行すると、なぜこれがブロックされるのですか?
UIスレッドなどで実行されているイベントもありますか? – pkolodziej
イベントのドキュメンテーションを読んでください。ほとんどのUI関連のイベントは、UIスレッドで発生します。不明な場合は、InvokeRequiredをチェックしてください。 –
イベントがUI以外のスレッドで発生した場合、ウィンドウはリフレッシュされませんが、UIスレッドで発生するとイベントが終了するまでウィンドウは再描画されません。 – pkolodziej