【发布时间】:2013-03-20 00:04:11
【问题描述】:
我最近看到了一些关于 TPL 和异步模式的演示,所以我开始了一个小项目来尝试一些东西。 (异步和并行的东西)
我注意到 SqlConnection 有一个 OpenAsync() 方法,所以我想尝试等待这个。据我了解, await 关键字告诉编译器检查操作是否完成,如果未完成,它将把其余代码转换为继续任务。我也明白我应该仍然能够调试代码。但是,我遇到了一些问题。
我写了如下简单的测试代码:
Async Sub Gogo()
Try
Await connection1.OpenAsync()
Catch ex As Exception
Console.WriteLine(ex)
End Try
SomeCode()
End Sub
当我运行此代码(控制台应用程序)时会发生什么,我确实进入了 await 语句,但没有进一步。我尝试在 catch 语句和 try 块后面的代码中设置断点。两者都没有到达,控制台应用程序简单地退出。我不明白这里发生了什么。
我正在使用 VS2012 更新 1,(VB).Net 4.5。另外,因为我怀疑发生了一些错误(这似乎没有什么意义,因为当我使它同步时代码可以工作)我将 app.config 配置为升级未观察到的异常:
<runtime>
<ThrowUnobservedTaskExceptions enabled="true"/>
</runtime>
但是,到目前为止,我没有遇到任何异常。 我错过了什么?请帮忙:)
【问题讨论】:
标签: vb.net async-await