0
我想在vb.net 4.5框架中做一個非常簡單的工作;創建並運行一個簡單的異步任務,它將象徵性地(使多個數據庫調用異步/並行)。vb.net task.delay鎖瀏覽器
我正在使用vs2012和vb.net非常簡單的MVC應用程序和一個控件。
的代碼很簡單>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim newTask As Task(Of String) = TryPause()
lblResults2.Text = newTask.Result
End Sub
Public Async Function TryPause() As Task(Of String)
Await Task.Delay(100)
Return "hello World"
End Function
代碼當 「task.delay」 被說出來運行良好。 但是,如果它停留在代碼內部,瀏覽器就會鎖定。
注意:thread.sleep工作正常....
我在想什麼?
你不應該使用'.Result'來同步等待'Task'。這會導致一個會破壞你的代碼的死鎖。 – SLaks 2013-04-29 21:18:56
謝謝我會牢記這一點;我目前正在嘗試並行運行多個進程,並將結果返回給主調用程序; taskfactory象徵着thread.sleep;但是我不能讓task.delay工作,它幾乎看起來像是後臺線程,並且永遠不會回到調用者。我試圖在webforms/mvc中。我即將離開證明延遲並開始進行實時數據庫調用。 – 2013-04-29 21:28:53