1

私は、アプリケーション自動化サービスを提供するWindowsフォームシステム(誰かにとって重要な場合はC#で)を構築しています。このアプリケーションはコンピューターに精通していないユーザーを対象としているため、ウィザードUIを使用してユーザーの作業を簡素化することにしました。ビューとビューエンジン(ウィザードの作成元)を自動化エンジンに結合することは避けたいと思います。

私が抱えている問題は、処理中に別のスレッドで実行される自動化エンジンが、ステータス情報をユーザーに報告し、ユーザーからのキャンセルまたは一時停止イベントをリッスンする必要があることです。ビューエンジンと自動化エンジンが相互に依存することを望まないため、この情報コンジットを提供する方法を理解するのに苦労しています。

私が抱えているこの問題についての洞察をいただければ幸いです。私はこの時点で数週間頭を悩ませてきました、そして私は本当にあきらめたくなくて、ただすべてを一緒に結合したくありません。

誰かが何らかのアイデアを思い付くのを助けるために追加の詳細が必要な場合は、私に知らせてください、そして私はそれらを喜んで提供します。

4

1 に答える 1

1

2 つの間の通信プラットフォームとして機能するスレッド セーフなオブジェクトを中間に配置しないのはなぜでしょうか? このクラスには、独自のイベントと、必要な情報を入力および抽出する方法を提供するプロパティとメソッドがあります。これをさらに一歩進めることもできます。複数のウィザードと自動化プラットフォームが同時に実行されている場合、それらが一意に識別可能であれば、ウィザード ID のハッシュをプラットフォーム ID に設定し、オブジェクトは一度に複数のペアの通信を処理できます。時間。これには、すべてがスレッドセーフであること、および実行している通信がそのウィザードとプラットフォームのペアに関連する情報のみを使用していることに非常に注意する必要があります。

これが大まかな答えであることはわかっていますが、他のアプローチよりも先にこのアプローチを検討します。これにより、必要な関心事の分離が実現し、設計どおりに多用途に使用できるコミュニケーション プラットフォームが提供されます。

最後に、おそらく必要のないアドバイスです。循環参照の問題が発生する可能性があるものに依存する通信クラスを作成しないでください。私は合理的に可能な限りクラスにとらわれないようにします。それが必要とするオブジェクトは、ウィザード/プラットフォームが必要とするオブジェクトから分離する必要があります。

お役に立てれば。

于 2010-05-10T16:50:50.423 に答える