完了まで1秒以上かかることができないWCFメソッド内で約25〜30秒かかるバックグラウンドロジックを実行する必要があります。私はそのロジックをWaitCallbackにラップし、Webメソッドを終了する直前にThreadPool.QueueUserWorkItemに渡すことに決めました。当初はうまくいきましたが、今やQueueUserWorkItemメソッドがタイムリーに返されないと思われるため、第2の考えがあります。その結果、Webメソッドは定期的に1秒以内に応答しません。 WCFメソッド内でQueueUserWorkItemを使用する際に問題はありますか?WCFメソッドでThreadPool.QueueUserWorkItemを使用する
1
A
答えて
1
それほど問題はありませんが、より一般的な問題、長時間実行されるサービスコールの場合の対処方法についてお聞かせください。次のいずれかを実行できます
- 変更のconfigs、クライアントとサーバが長いサービスコールを許容するように、すなわち増加は
またはタイムアウト、あなたのサービスを設計開始と呼び出す/最終結果のAPIを取得/現在の進行状況を取得し、すべての
int jobID = serviceProxy.StartJob(); float progress = serviceProxy.GetJobProgress(int jobID); Result finalResult = serviceProxy.GetJobResult(int jobID);
これは、より多くの仕事、より良いデザインで、あなたは今も、B(QueueUserWorkItem
または何を使用することができ、あなたの非同期proceessing)ジョブを実行しているのリストを維持する必要があります。そのうちすぐに戻りますすべてのサービスコールはすぐに返されます。
関連する問題
- 1. ThreadPool.QueueUserWorkItemはASP.Netを使用します
- 2. 完了メソッド毎回呼び出す方法ThreadPool.QueueUserWorkItemメソッドが
- 3. ThreadPool.QueueUserWorkItemユースケース
- 4. ThreadPool.QueueUserWorkItem NullReferenceException
- 5. ThreadPool.QueueUserWorkItemスレッド内で非同期呼び出しを使用
- 6. WebアプリケーションでThreadPool.QueueUserWorkItemを使用する場合の欠点はありますか?
- 7. .NETでの匿名の代理人の使用ThreadPool.QueueUserWorkItem
- 8. WCFと拡張メソッドを使用するDTO
- 9. "Fire and Forget"タスク用のWebサービスのThreadPool.QueueUserWorkItem
- 10. ThreadPool.QueueUserWorkItemにメモリ要件を通知する
- 11. HttpContext.Current.ItemsにアクセスするWCFで静的メソッドを使用できますか?
- 12. WCF Riaのドメインサービスクラスのメソッドを使用できませんか?
- 13. (マルチテナントWCFサービス)WCFのURLルーティングを使用したパラメータの少ないメソッド
- 14. WCF RESTスターターキットでCDATAを使用する
- 15. アプリケーションでWCFクラスライブラリを使用する
- 16. WCFサービスでFsrmQuotaManagerを使用する
- 17. AndroidでWCFを使用する方法
- 18. JavaでWCF .svc WebServiceを使用する
- 19. AndroidクライアントでWCF netTcpBindingを使用する
- 20. WCF WebでIdentity Foundationを使用する
- 21. WCFでXmlAttributeOverridesを使用する方法
- 22. WCFでキャッシングを使用する方法
- 23. WCFサービスでLoaderOptimizationAttributeを使用する
- 24. WCFでRabbitMQを使用するには?
- 25. WCF WebAPIでjqGridを使用
- 26. X ++でWCFチャネルを使用
- 27. WCFでMvcMailerを使用
- 28. アプリケーションでWCF DataServiceを使用
- 29. V2010でAsp.netを使用してWCF 4.0を使用するチュートリアル
- 30. AndroidでSSLを使用してWCFサービスを使用する
ThreadPool.QueueUserWorkItemはビットが時代遅れです。 [TPL](http://stackoverflow.com/questions/9200573/threadpool-queueuserworkitem-vs-task-factory-startnew)の使用を検討する必要があります。クリスの返答+1。 –