0

私のソリューションには、アプリケーション、データを提供するクラス ライブラリ、およびバックグラウンド タスク用の Windows ランタイム コンポーネントの 3 つのプロジェクトがあります。問題は、データ プロバイダーを使用するためにボット アプリケーションとバックグラウンド タスクが必要なことです。そして、これは「別のスレッド用にマーシャリングされたインターフェースを呼び出したアプリケーション」で終わります。ディスパッチャーで何かを再実行できないため、ディスパッチャーは完全な解決策ではありません。

バックグラウンド タスクが呼び出されることはめったにないため、バックグラウンド タスクがそのデータを取得できるように、インターフェイスを提供するデータを 1 秒間アンマーシャリングすることは可能ですか? そうである場合 - どうすればいいですか、そうでない場合 - 他に何ができますか?

4

1 に答える 1

0

次の 2 つのオプションがあります。

  1. ラッパー クラスを使用して、バックグラウンド スレッドからの呼び出しが適切なスレッドにマーシャリングされるようにします。通常、これは、元のオブジェクトをパラメーターとして取り、そのクラス インターフェイスを独自の構造に複製するが、メソッドを直接呼び出す前にアクセスをチェックするクラスを作成することを意味します。

  2. バックグラウンド スレッドで呼び出すことができる新しいデータ アダプターを作成します。

これらのオプションのいずれかが問題を解決します。

于 2014-09-02T14:07:54.523 に答える