10

私はASP.Net MVC 5を使用しています.Webサービスをポーリングし、データを処理してデータベースに保存する必要がある長時間実行アクションがあります。

そのために、TPL ライブラリを使用してタスクを非同期で開始したいと考えています。

しかし、私は3つのことをどのように行うのだろうか:

  • このタスクの進捗状況を報告したいと思います。このために、SignalRについて考えます
  • このタスクを開始したページを離れて、Web サイト全体の進行状況を報告できるようにしたい (左側のパネルからでも、これで問題ありません)
  • そして、このタスクをグローバルにキャンセルできるようにしたい (左側のパネルから)

関連するすべてのテクノロジーについてかなりの知識があります。しかし、これを達成するための最良の方法についてはわかりません。

誰かが最善の解決策について私を助けることができますか?

4

2 に答える 2

8

http ワーカーを使用して長いタスクを実行するのは悪いことですが、SignalR でそれを管理する方法の小さな例を作成しました。

この例では、次のことができます。

  • タスクを開始する
  • タスクの進行状況を確認する
  • タスクをキャンセル

それはに基づいています:

  • ツイッターのブートストラップ
  • ノックアウト
  • シグナルR
  • CancelToken と IProgress を使用した C# 5.0 の async/await

この例のソースは次の場所にあります。

https://github.com/dragouf/SignalR.Progress

ここに画像の説明を入力

于 2014-06-02T11:05:44.543 に答える