3

データベースから読み取り、ユーザーが選択した項目に応じて複数の Listview コンテナーを作成する Windows アプリケーションがあります。特定の Listview 内の一部のデータは、「Excel にデータを書き込む」ための MenuItem オプションを使用して右クリックできます。これが完了するまでに約 10 分かかる場合があります。

Excel 相互運用部分をスタンドアロン コードで記述していますが、それをアプリケーション プロジェクトに組み込むことはできますか。Excel 相互運用アプリは、その処理を行うために 1 つのパラメーターのみを受け取ります。

私の質問は... Windows アプリに組み込んでマルチスレッドを使用するか、Windows アプリから呼び出されるスタンドアロン アプリ (より効率的と思われる) として実行する必要がありますか? そして、Windows アプリがプロセスを開始し、その後それを忘れることができるようにするための良い方法は何ですか。

4

3 に答える 3

3

これに対する答えは、「ユーザーがその 10 分間にメイン アプリケーションを閉じるとどうなるか」という質問によって答えられると思います。

ファイルがまだ書き込まれる必要がある場合は、スタンドアロン アプリケーションが最適です。これは、スレッドが生き残れないためです。

ファイルの作成を中断する必要がある場合、マルチスレッドを使用しない理由はありません。デフォルトではシンプルに見えるためです。特に、コードのこの部分のデバッグは、同じアプリケーション内にある場合にはるかに簡単です。

于 2013-06-26T13:19:36.910 に答える
0

以下のフローをお勧めします。

  1. データベースまたはファイルシステムで維持される独自のキューを作成できます。
  2. 次に、すべての未処理のリクエストを取得するスケジューラを作成し、レスポンスに関して、キューに入れられたアイテムの適切なステータスをマークします。

これで、アプリケーションはキューイング プロセスを呼び出して、そこから先に進むことができます。

于 2013-06-26T13:13:46.113 に答える