cjw*_*cjw 2 vb.net asynchronous
我无法使用 Async/Await 从 WCF 服务获取数据表并将其加载到 datagridview 中。这是我第一次这样做,我觉得我缺少一些基本的东西。这是我到目前为止的代码:
Private p_oDataService As New SQLService.DataServiceClient
Async Function GetReportDataTable() As Task(Of DataTable)
Try
p_oDataService = New SQLService.DataServiceClient
Dim tDatatable As Task(Of DataTable) = p_oDataService.GetValidationReportsAsync()
Dim dt As DataTable = Await tDatatable
Return dt
Catch ex As Exception
Throw ex
End Try
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
Dim tDT As Task(Of DataTable) = GetReportDataTable()
Dim dt As DataTable = GetReportDataTable.Result
DataGridView1.AutoGenerateColumns = True
DataGridView1.DataSource = dt
Catch ex As Exception
Throw ex
End Try
End Sub
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏!
您正在混合阻塞和异步调用。当你调用GetReportDataTable.Result
它时会死锁。
事件处理程序允许您等待异步任务以及更新事件处理程序...
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
Dim dt As DataTable = Await GetReportDataTable()
DataGridView1.AutoGenerateColumns = True
DataGridView1.DataSource = dt
Catch ex As Exception
Throw ex
End Try
End Sub
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10836 次 |
最近记录: |