0

Ok。非同期タスクを実行している外部スクリプト [編集: Web サービス] を呼び出しています。通常、完了するまでに 1 ~ 2 分かかります。

続行する前に、前のタスクがまだ完了しているかどうかを確認するために別の呼び出しを行う必要があるため、その間、ユーザーに「お待ちください」メッセージを表示したいと考えています。

タイマーを使用することは、必ずしも良い解決策ではありません。続行する前に、ユーザーが実際に待機する必要があります。

だから私が持っている質問は、thread.sleep が Web アプリケーション全体をスリープ状態にするのか、それとも現在の UI の 1 つだけをスリープ状態にするのかということです。

他の Web サイト訪問者の UI がハングしたくありません。これが本番環境でどのように機能するかはわかりません。

Windows 2008 r2でiis 7を使用しています

ありがとう

4

3 に答える 3

1

Thread.Sleep は使用しないでください。これがWebアプリケーションであると仮定すると...

1 つの要求でタスクを開始し、ジョブ トークンを返す必要があります。

別のリクエストで、ユーザーはそのジョブのステータスを確認できるはずです (トークンを渡すことにより)。

ジョブが完了すると、ユーザーは (トークンを渡すことによって) ジョブの結果を取得できるはずです。

于 2013-08-12T20:12:52.800 に答える
1

より多くの情報がいいでしょう。でも:

iis7 を使用しているため、Web サイト (asp.net mvc または webforms) を作成するつもりだと思います。サーバーを実行するだけで、クライアントは Ajax 呼び出しを使用してタスクのステータスを確認できます。完了したタスクはどこかに、できればデータベースに保存する必要があります。xml などを使用して、タスク ID を保存したり、完了したかどうかを確認したりすることもできます。そして、完了時に taskid true に戻るまで、ajax に 5 秒ごとに呼び出しを行わせます。

于 2013-08-12T20:12:37.293 に答える