私は ASP.NET Web アプリケーションを何年も書いていますが、大規模な Windows フォーム プロジェクトにはあまり取り組んでいません。私は今、それに取り組む必要があるので、大規模なウィンドウフォームプロジェクトが理想的にどのように構造化されるべきかについてのいくつかの指針を探しています。具体的には、複数のスレッドを処理する方法を知りたいです。完了するまでに時間がかかるプロセスがあるとします。UI ウィンドウがフリーズして応答しなくなるのは望ましくありません。そのため、そのロジックは別のスレッドで移動する必要があります。このスレッドが UI にアクセスすると、例外が発生します。Invoke はうまく機能しているように見えますが、読み書きするのは非常に見苦しく面倒です!
では、実際には、ベストプラクティスは何ですか? どのタイプのスレッドを起動する必要があり、これらのスレッドを UI とロジックの間でどのように分割する必要がありますか? 始めるためのサンプルコードはありますか?