vb.net task.delay锁定浏览器

时间:2013-04-29 21:16:08

标签: vb.net async-await

我正在尝试在vb.net 4.5框架中做一个非常简单的工作;创建并运行一个简单的异步任务,它将进行符号化(使多个数据库调用异步/并行)。

我正在使用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工作正常....

我缺少什么?

1 个答案:

答案 0 :(得分:2)

正如@SLaks正确指出的那样,Result导致死锁。我会更详细地解释这一点on my blogin a recent MSDN article