相关疑难解决方法(0)

抑制警告CS1998:这种异步方法缺少"等待"

我有一个带有一些异步功能的接口.实现该接口的一些类没有任何东西需要等待,有些可能只是抛出.所有警告都有点烦人.

不在异步函数中使用await时.

是否有可能压制消息?

public async Task<object> test()
{
    throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)

警告CS1998:此异步方法缺少'await'运算符并将同步运行.考虑使用'await'运算符等待非阻塞API调用,或'await Task.Run(...)'在后台线程上执行CPU绑定工作.

asynchronous

88
推荐指数
7
解决办法
5万
查看次数

"await Task.Run(); return;"之间的任何区别 并"返回Task.Run()"?

以下两段代码之间是否存在任何概念差异:

async Task TestAsync() 
{
    await Task.Run(() => DoSomeWork());
}
Run Code Online (Sandbox Code Playgroud)

和

Task TestAsync() 
{
    return Task.Run(() => DoSomeWork());
}
Run Code Online (Sandbox Code Playgroud)

生成的代码也不同吗?

编辑:为避免混淆Task.Run,类似的情况:

async Task TestAsync() 
{
    await Task.Delay(1000);
}
Run Code Online (Sandbox Code Playgroud)

和

Task TestAsync() 
{
    return Task.Delay(1000);
}
Run Code Online (Sandbox Code Playgroud)

最新更新:除了接受的答案之外,LocalCallContext处理方式也有所不同:即使没有异步,CallContext.LogicalGetData也会被恢复.为什么?

c# async-await

77
推荐指数
4
解决办法
3万
查看次数

标签 统计

async-await ×1

asynchronous ×1

c# ×1