2010-12-15 12 views
3

バックグラウンドでジョブを実行するコードブロックが必要です。ユーザーが[送信]ボタンをクリックした後、ユーザーがそのウィンドウを閉じて別のジョブを実行してジョブを実行している間に、ジョブがバックグラウンドで開始したとします。バックグラウンドでジョブを実行

ASP.NETとVB.NETでいくつかのヘルプを提供してください。

はあなたの助け

答えて

5

あなたはスレッドプールから引き出されたスレッド上でいくつかのいくつかの方法を実行することができますThreadPool.QueueUserWorkItem方法を見てみていただき、誠にありがとうございます。代わりに、Threadクラスを使用すると、限られた数のスレッドを含むプールからスレッドを危険にさらすことを避けるために、実行中のタスクであれば新しいスレッドを手動で生成することができ、ASP.NETアプリケーションで要求を処理するためにも使用されます。

+0

しかし、どのようなセッションが終了したときに、それが実行時間の長い仕事だ場合、発生します。スレッドはそれと一緒に降りませんか? – Patrick

+0

@ Patrick、いいえ、スレッドはセッションに関連していません。これらはAppDomainに関連しているため、IISがアプリケーションをロードしたままにしておく限り、実行されます。一方、IISがアプリケーションプールをアンロードすると、スレッドの実行も停止します。 –

+0

スレッドを起動すると、実行中のジョブの存続期間によってはこれを解決できないことがありますか?アプリケーションがIISによって削除されるまでにどれくらい時間がかかりますか? – Patrick

4

これは、wcfサービスをホストするWindowsサービスを作成することで実行できます。ユーザーが送信ボタンをクリックすると、Windowsサービスに要求を送信でき、Windowsサービスはユーザーが終了するバックグラウンドイベントで実行されます。窓。

1

BackgroundWorkerは、開始が最も簡単な場所です。コードをDoWorkイベントに入れます。

関連する問題