user_loginイベントまたはForm_loadイベントにスレッドを作成したいとします。 このスレッドでは、いくつかのSQL文を実行するためにクラス関数を呼び出す必要があり、ユーザーは結果やバックグラウンドプロセスが完了するのを待つ必要はなく、単に彼の望むページに移動して、 。 私はASP.NET、C#を使用しています。asp.net/c#のスレッド
答えて
C#での非同期呼び出しの例を次に示します。
http://support.microsoft.com/kb/315582
パターンの選択は、あなたのニーズによって異なります。サンプル5では、アクションの実行時にコードを実行したくない場合に、コールバックとしてnullを指定できることに注意してください。
@ llya Kogan、ありがとう私はそれを探しています。 – safi
これは価値があることは、これは悪い考えです。 IISがそのバックグラウンドスレッド(IISの再起動、アプリケーションプールの再起動など、IISの通常の正常な動作)を終了させる可能性があるさまざまな方法があります。その結果、DBトランザクションが黙ってロールバックされることになります。
これらのクエリを確実に実行する必要がある場合は、それらを要求で実行するか、Windowsサービスやその他の長寿命プロセスに送信する必要があります。これは、ユーザーが進行状況に関するフィードバックを得ることができないことを意味するものではなく、IIS要求自体がAJAX呼び出しによって実行される可能性があります。
@ Chris Shain、例やリンクはありますか?これはどうやって? – safi
これは大きな話題です。基本的な考え方は、データベース呼び出しを成功させるためには、msmqのようなものにキューを入れてから、バックグラウンドプロセスでキューを読み込んでコマンドを実行する必要があるということです。キューはデータベースのようにトランザクショナルなので、メッセージをキューに入れると、Webサーバーが再起動してもメッセージが消去されないことを確認できます。もう一方では、読み取りアプリケーションは、すべてのキューメッセージが確実に実行されるように分散トランザクションを使用する必要があります。 –
これは、Thread.Startを使用してスレッド内でメソッドを呼び出すことで可能です。 IsBackgroundはデフォルトではfalseです。これにより、アプリケーションの停止を防ぐことができます。
http://msdn.microsoft.com/en-us/library/7a2f3ay4.aspx
しかし、あなたの時間のほとんどは、おそらくあなたのデータベース呼び出しに費やされるからです。コールバックなしで非同期に実行するのはなぜですか? BeginExecuteNonQueryになるSqlCommandで。
これは、iisがアプリケーションプールを再起動するのを妨げません。 –
- 1. EJBのスレッドとスレッド
- 2. Java:スレッドを別のスレッドに渡すスレッド
- 3. スレッドのスレッドのタイマーQt
- 4. Javaのスレッド内のスレッド?
- 5. Javaスレッド - スレッドのローカル変数
- 6. スレッド上のPython Sounddevice.play()スレッド
- 7. Androidインセプション(スレッド内のスレッド)
- 8. C++ラムダ式スレッドのスレッド化
- 9. Pythonスレッド/スレッドの実装
- 10. 複数のスレッドのハンドラとスレッドのスレッドの比較
- 11. Javaのスレッド:古いスレッドにJavaスレッドへの新規の
- 12. JavaスレッドとOSスレッド
- 13. スレッドとスレッド開始
- 14. プロセスのスレッドとスレッドの違い。
- 15. 子スレッドからの親スレッドへのコールバック
- 16. Pythonでのスレッド化(スレッドの終了)
- 17. AndroidのUIスレッドと子スレッドの通信
- 18. スレッドの優先度とスレッドの精度
- 19. スレッド内のサービスとサービス内のスレッド
- 20. スレッド#実行とスレッド#ウェイクアップの違いは?
- 21. Javaスレッド:スレッド間のExecutorService遅延
- 22. スレッドをロックして別のスレッドにロック
- 23. スレッド同期 - プロセスの最大スレッド数
- 24. スレッドモジュールpythonスレッドの停止と再開スレッド
- 25. 関数PyQtのスレッドをスレッドする
- 26. Androidスレッド:スレッドからのビューを参照
- 27. 最小スレッドと最大スレッドの並列
- 28. Pythonのスレッドがparrentスレッドから
- 29. スレッドのガベージコレクションを防止するスレッド
- 30. スレッドをブロックするスレッド
.NETのどのバージョンですか? –
@ Jeff Sternal 4.0 – safi