我最近看了一些关于 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>
但是,到目前为止,我没有得到任何异常。我错过了什么?请帮忙 :)