异步/等待LINQ方法

时间:2016-09-21 15:43:33

标签: asp.net vb.net asynchronous async-await

我今天花了整整一天阅读关于异步/等待但我仍然无法完全理解它。我理解在调用await语句时的异步方法中 - 该方法暂停,直到返回结果。我希望在我的Web窗体中提高性能,以便将数据插入到我的数据库中。基本上,目前我这样做:

Protected Async Sub btnSave_Click(sender As Object, e As EventArgs)
    Dim task as Task = CreateItem()
    ClearModalControls()
    CloseModal()
    await task
End Sub

Private Async Function CreateItem() as Task
    Dim item as Item = New Item With {
        .id = 1,
        .name = "task"}
    _db.Items.InsertOnSubmit(item)
    _db.SubmitChanges()
    Grid.Rebind()
End Sub

我想在Item对象插入数据库之前关闭一个模态(具有用户输入的I / O控件),因为这需要几秒钟的时间。在这几秒钟内 - 用户可以浏览网站和/或进行任何其他操作。似乎我无法获得我想要的功能。我的代码有问题吗?

我知道我最后可能只有await task并删除Dim task as Task = CreateItem()但是我在该方法中有一些逻辑,以防出错和什么会阻止Modal关闭/拉动如果关闭,则再次启动模态。

编辑:我的模态/控件是AJAXified。回发不会重新加载页面,只会重新加载面板。

0 个答案:

没有答案