C# winforms アプリケーションのメイン スレッドに影響を与えずに多数の UI 更新を実行する方法はありますか?
ユーザーが特定のイベントをクリックしたときの長い遅延を避けたいです (私の場合、メモリを破棄するための多くのクローズ フォーム コールです)。
「do work」イベントで長い操作を実行するために使用できることはわかっBackgroundWorker
ていますが、問題は、このイベントでUIを変更できないことです(クロススレッド例外が発生します)-したがって、多数のクローズフォームを配置できませんここに呼び出します。
また、これはメインスレッドで実行され、最終的にメインスレッドをロックアップしてユーザーエクスペリエンスを低下させるため、クローズフォーム呼び出しを「worker completed」イベントに入れることはできません。
アプリケーション セッションがアイドル状態の場合にのみクローズを処理するスレッドを生成することを考えましたが、これが少し厄介になるかどうかはわかりません。