相关疑难解决方法(0)

如何以及何时使用'async'和'await'

从我的理解主要事情之一asyncawait要做的就是让代码易于读写-但使用它们等于产卵后台线程来执行持续时间长的逻辑?

我正在尝试最基本的例子.我在内联添加了一些评论.你能为我澄清一下吗?

// I don't understand why this method must be marked as `async`.
private async void button1_Click(object sender, EventArgs e)
{
    Task<int> access = DoSomethingAsync();
    // task independent stuff here

    // this line is reached after the 5 seconds sleep from 
    // DoSomethingAsync() method. Shouldn't it be reached immediately? 
    int a = 1; 

    // from my understanding the waiting should be done here.
    int x = await access; 
}

async Task<int> DoSomethingAsync()
{
    // is …
Run Code Online (Sandbox Code Playgroud)

.net c# asynchronous async-await

989
推荐指数
19
解决办法
78万
查看次数

为什么async关键字存在

浏览频道9 msdn视频我发现以下未答复的评论,希望有人可以解释一下吗?

我不明白async关键字.为什么不在方法返回Task时随时允许await关键字,就像迭代器可以在任何返回IEnumerable的方法上产生返回一样.

我确信有充分的理由,我只是想明白为什么上述建议是不可能的.

.net c# asynchronous async-ctp

39
推荐指数
3
解决办法
3227
查看次数

在ASP.NET事件处理程序中使用async/await是否安全?

当我遇到这个时,我在ASP.NET中做了一些编码:

protected async void someButtonClickHandler(...)
{
    if(await blah)
        doSomething();
    else
        doSomethingElse();
}
Run Code Online (Sandbox Code Playgroud)

在提出这个问题后,我对如何async/ await工作有了更好的理解.但是,让我感到震惊的是,以上述方式使用async/ 是否安全await
我的意思是在调用后调用await blah者继续执行.这意味着它可能会在await blah完成之前将响应呈现给客户端.这是正确的吗?如果是这种情况发生在doSomething()/ doSomethingElse().他们会被处决吗?如果它们被执行了,用户是否会看到其更改的效果?
在我的情况下,这些方法会改变显示给用户的一些数据,但我也想知道在一般情况下会发生什么.

c# asp.net webforms async-await

12
推荐指数
1
解决办法
2934
查看次数

标签 统计

c# ×3

.net ×2

async-await ×2

asynchronous ×2

asp.net ×1

async-ctp ×1

webforms ×1