データベースでタスクを実行するはずのC#でマルチティアアプリケーションを使用しています(初めて使用する場合、データベースを作成してデータを入力することがあります)。私が最初にアプリケーションを設計したとき、進捗バーコントロールの可能性は考慮されていませんでした。アプリケーションの設計を変更して、データベース操作の進捗状況をUIレイヤーに報告できるようにするにはどうすればよいですか?そこには再利用可能なソリューションがありますか?また、私のすべての機能を変更してレポートの追加情報を入力する必要はありませんか?進捗バーを使用するマルチティアアプリケーションの設計
答えて
いいえ、アプリケーションの大きさによっては、先行して多くの作業があります。
作業の進捗状況を報告するには、作業単位が完了したときにイベントを発生させる作業が必要です。そのイベントはUIレイヤーで処理され、進捗インジケーターが更新される必要があります。
開始するには、BackgroundWorker(ここにはMSDNの例 - http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx)があります。 BackgroundWorkerに慣れたら、アプリケーションにどの変更を加える必要があるかを判断するのに適しています。
サーバコードを変更して、サーバシグネチャを変更せずにサーバ側で進捗情報を更新し、この情報を個別に照会できる別の方法を使用できます。
これにより、サーバーへの既存の呼び出しに何の影響も与えずに、進捗状況のサポートを後付けすることができます。UIの新しいバックグラウンドスレッドを追加して、長時間の実行中の進行中の情報を確認します。
編集:クライアントで実行されるタスクでも同じアプローチが有効だと思います。しかし、静的な進捗インジケータクラスもここでも使用できます。
グレッグが述べたように、今後多くの作業があります。しかし、問題に近づくには多くの方法がありますが、クライアントからアプリケーション/データベース層にコンテキスト情報がどのように伝わるかによって、最適なものが決まります。たとえば、セッショントークンまたはトランザクション識別子が、通常、クエリ/トランザクションまたはアプリケーションからクライアントに非同期に戻される確認応答を実行する通常の過程でクライアントからアプリケーションに渡された場合、進捗報告が必要だった場合、アプリケーションがクライアントが照会できる状態テーブルを更新するようにすることができます。これにより、必要な再作業の量を減らすことができます。基本的には、「ミドルウェア」をすでに使用しているとみなし、それを利用して階層間のトランザクションを関連付けることができるかどうかを確認する必要があります。
- 1. 進捗バーを使用する
- 2. Android進捗バー設定レベル
- 3. 進捗バーのwinformバー
- 4. 進捗バーとクリックカウンタの使用
- 5. ラジアル進捗バー反時計回り
- 6. GWTの進捗バー
- 7. モーダルタイマーの進捗バー
- 8. それぞれ進捗バーと進捗ダイアログを使用する条件
- 9. 進捗バーの割合を計算する
- 10. ポートフォリオ商品の進捗バー
- 11. タイムラインAVPlayerの進捗バー
- 12. カラープログレスアニメーションの進捗状況バー?
- 13. オンラインWebフォームの進捗バー
- 14. 進捗バーへのバインド
- 15. Swift - SpriteKit - 次の進捗バー
- 16. AJAXリクエストの進捗状況バーを使用する
- 17. ブートストラップの進捗バーをカウントダウンタイマーとして使用する
- 18. 出力の進捗バーを使用する
- 19. SpriteKitで進捗バーを作成する(スウィフトを使用)
- 20. 進捗バーを使用してLaravelでデータベースをシードする
- 21. 進捗バー付きカスタムオートコンプリート
- 22. Javaファイルに進捗バー
- 23. 変更進捗バー個別
- 24. 進捗バー付きボレーマルチパートリクエスト
- 25. wpf c#進捗バーは、バックグラウンドワーカー
- 26. 進捗方法バー番号
- 27. アニメーション進捗バー範囲WPF
- 28. スピナーの前に進捗バーを設定する方法は?
- 29. ビジュアルインストールスクリプトを進捗バーで作成する
- 30. リストビューで進捗バーを更新する
幸運。 (報告)の進展は難しい – SLaks