0

vb.net 4.5 フレームワークで非常に単純な仕事をしようとしています。シンボル化する単純な非同期タスクを作成して実行します (複数のデータベース呼び出しを非同期/並列で実行します)。

私は vs2012 と vb.net を使用しています。非常にシンプルな MVC アプリと 1 つのコントロールです。

コードは簡単 >

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 は正常に動作します....

私は何が欠けていますか?

4

1 に答える 1

2

@SLaks が正しく指摘したように、Resultデッドロックが発生しています。これについては、私のブログ最近の MSDN の記事で詳しく説明しています。

于 2013-04-30T00:14:34.490 に答える