Model-View-Presenter (または MVC や MV-VM、または使用しているバリアント) で遅い操作をどのように処理しますか?
WinForms、SWT/JFace、または使用しているデスクトップ フレームワークでの操作が遅い場合は、バックグラウンド スレッドで実行して、アプリケーションが完全にロックされないようにする必要があります。これはどこで処理するのですか?
いくつかの解決策を見ることができますが、それらのいずれにも完全に満足しているわけではありません:
ビューの呼び出しで、常にバックグラウンド スレッドでプレゼンターを呼び出すようにします。つまり、ビューは、プレゼンターからのすべての呼び出しがおそらくバックグラウンド スレッドから来ることを処理する必要があります。
メイン スレッドでビューにプレゼンターを呼び出させます。バックグラウンドで実行できるように、遅い操作を実行する場合、プレゼンターはビューにコールバックする必要があります。
普段何をしていますか?
編集:この記事を見ました: http://www.codeproject.com/KB/threads/ThreadedExecuter.aspx。これは基本的に 2 の実装です。このようなことを試した人はいますか?