我有一個時間敏感的進程調用ASP.NET中的Web服務。如果Web服務運行時間超過N秒,我想從呼叫返回,以便時間敏感的操作可以繼續。這是可能的,如果是這樣的代碼是什麼?經過一段時間後從函數返回一個值?
0
A
回答
1
有Web服務調用一個單獨的線程其長期運行的一部分。然後等待,殺死它,如果花費太長時間,則保釋。預先警告這可能會導致稀缺資源(例如,數據庫連接等),但你也可以解決這個問題。
(遺憾的快速和骯髒的代碼,它是演示,您應詳細說明,並添加類型,web服務細節等)
dim ResultFromWorker as String
dim DoneWorking as boolean
sub GetWebServiceMagicNumber
DoneWorking = False
dim t as new thread = addressof (GetWebServiceMagicNumber_Worker)
t.start
dim count as integer = 0
while not DoneWorking and Count <100
count +=1
System.Threading.Thread.Sleep(100) ' Important to not kill CPU time
wend
if DoneWorking then
return ResultFromWorker
else
return "TimeOut"
EndIf
end sub
sub GetWebServiceMagicNumber_Worker
try
ResultFromWorker = SearchTheWholeWorldForTheAnswer()
catch ex1 as ThreadAbortException
' ignore - My code caused this on purpose
' calling thread should clean up scarce resources, this is borrowed time
catch ex2 as Exception
ResultFromWorker = "Error - " & ex.tostring
finally
DoneWorking=True
End Try
end sub
3
+0
我認爲這個...我試圖讓的原因這樣做是爲了避免編譯引用服務的應用程序。 – Achilles 2010-04-19 19:39:58
相關問題
- 1. 經過一段時間後在JavaScript中調用函數
- 2. 經過一段時間後產卵C
- 3. apc_fetch在一段時間後返回false
- 4. chrome.extension.getBackgroundPage()在一段時間後返回null
- 5. Python的 - 從一個函數返回值
- 6. 從javascript函數返回一個值
- 7. jQuery的 - 從函數返回一個值
- 8. 經過一段時間後生成回發
- 9. 函數返回一個函數,返回一個函數等
- 10. C++ Lambdas:函數返回一個函數,返回一個函數...?
- 11. 從函數返回一個lambda函數
- 12. iOS:在網絡運行後從函數返回一個值
- 13. PL/SQL函數在檢查後從表中返回一個值
- 14. 從存儲過程中返回一個值經典asp
- 15. Jasmine,AngularJS:單元測試一個函數,它在超時後返回一個值
- 16. 當一個類中的函數返回一個值時,它返回到哪裏?
- 17. 從一個函數傳遞返回參數另一個函數
- 18. C#:DateTime - 經過一段時間?
- 19. 從C++函數返回一個數組
- 20. python random.randint()在一段時間後一直返回0
- 21. 經過一段空閒時間後,圖像無法從數據庫加載
- 22. 函數不會返回一個值
- 23. 在c#函數中返回一個值
- 24. 'KeyPressFcn'函數返回一個值
- 25. 將值返回給另一個函數
- 26. 從JS函數返回上一頁並保留字段值
- 27. 從另一個活動返回後返回到MainActivity的片段?
- 28. 如何返回一個SQL時間字段的平均值
- 29. 原型 - 函數內每個() - 只返回最後一個值
- 30. 經過一段時間後重定向到另一個Node.js頁面
哎呀!對於那些看起來......我忘了在語句'返回'TimeOut''之前殺死線程。它仍然會在web服務返回時自行結束,但如果使用相同的對象2x,如果再次調用可能會混淆共享成員變量。 – FastAl 2010-05-24 19:26:49