我在返回數據表的模塊中有一個函數。我需要異步調用該函數,並在vb.net的主線程(主窗體)中獲取結果。我們如何調用模塊中的函數並在vb.net中異步獲取主線程中的結果
1
A
回答
2
您可以使用BackgroundWorker
來做到這一點。
Private WithEvents dataBackgroundWorker As New BackgroundWorker
那麼你就需要調用
dataBackgroundWorker.RunWorkerAsync()
其中在處理器提高了DoWork
事件
所以,你會打電話給你的功能,並通過e.Result
e.Result = yourFunction()
然後在RunWorkerCompleted
事件,你會分配e.Result
到相應的變量。
2
你最好打賭的可能是使用後臺工作者。如果你感覺冒險,但Async CTP看起來非常棒。
http://msdn.microsoft.com/en-us/vstudio/gg316360
你可以在這裏找到樣本:http://www.wischik.com/lu/AsyncSilverlight/AsyncSamples.html
Public Async Function AsyncResponsiveCPURun() As Task
Console.WriteLine("Processing data... Drag the window around or scroll the tree!")
Console.WriteLine()
Dim data As Integer() = Await ProcessDataAsync(GetData(), 16, 16)
Console.WriteLine()
Console.WriteLine("Processing complete.")
End Function
Public Function ProcessDataAsync(ByVal data As Byte(), ByVal width As Integer, ByVal height As Integer) As Task(Of Integer())
Return TaskEx.Run(
Function()
Dim result(width * height) As Integer
For y As Integer = 0 To height - 1
For x As Integer = 0 To width - 1
Thread.Sleep(10) ' simulate processing cell [x,y]
Next
Console.WriteLine("Processed row {0}", y)
Next
Return result
End Function)
End Function
+0
它看起來很棒。我相信這些條款和條件表明你不打算將其部署在生產代碼中......雖然我不能建議你違反該法律協議,但我認爲這是唯一阻礙工作的方式,沒有任何技術(除了不支持) – MarkJ 2011-03-02 17:26:07
相關問題
- 1. NodeJS異步模塊:如何在回調中獲取結果對象?
- 2. 使用Omni線程庫在Delphi中異步獲取函數結果
- 3. 如何在clojure中調用函數並獲取結果?
- 4. 我們如何在Redux異步操作中模擬獲取?
- 5. 如何從Spring的異步函數調用中獲取值?
- 6. 如何在nodeJs中返回異步功能的結果(異步模塊)
- 7. Node.js異步函數沒有回調塊主線程?
- 8. 如何在異步模型中使用回調結果C++
- 9. Nodejs,異步模塊函數調用
- 10. 如何在javascript中獲取回調函數內的結果?
- 11. 中斷主調用線程如果子線程拋出異常
- 12. 異步函數 - 使用主線程擁有的對象回調
- 13. 從異步任務中獲取結果
- 14. 如何獲取異步調用方法的結果?
- 15. 在node.js中如何獲取當前模塊中其他模塊函數的結果?
- 16. 如何從多步流水線函數的每一步獲得中間結果?
- 17. 我可以在Dart中異步調用非異步函數嗎?
- 18. C#從異步調用中獲取結果
- 19. 如何獲取函數的結果並將其應用於R中的函數?
- 20. 在回調中調用異步函數
- 21. 如何在Angular2模板中顯示異步承諾函數的結果?
- 22. 並行線程SIGEV_THREAD和異步安全的函數調用
- 23. 我們如何在vb.net中使用python模塊
- 24. 如何處理JavaScript中的異步函數結果
- 25. 我們如何中斷主線程
- 26. 如何正確使用線程池並從線程中獲取結果?
- 27. 如何在AngularFire中返回異步函數結果
- 28. 如何在Python中獲取模塊的名稱,調用特定的函數。
- 29. 如何從Python中的線程池中獲取結果?
- 30. 如何在javascript中使模塊異步
謝謝。我無法將數據表作爲e.result返回並在RunWorkerCompleted事件中獲取數據表。你能幫忙嗎?它拋出一個異常可空對象必須有一個值。我可以設置字符串作爲結果 – Akshara 2011-03-03 05:18:18