(asbie / await的新手)
我正在链接一个正在深入到很多类的Initialize()函数 每个类都有这个初始化方法:
public async Task Initialize(string fileName)
当我进入最后一堂课时,我该怎么做? 我想运行一个简单的函数,如:
public async Task Initialize(string dllPath)
{
await PrintThePath(dllPath);
}
public void PrintThePath(string dllPath)
{
Console.WriteLine(dllPath);
}
当然我得到“无法等待无效”的错误 所以我逻辑上做错了。
有人可以解释一下吗?
答案 0 :(得分:3)
在这种情况下,只需在没有PrintThePath
的情况下直接致电await
,因为这是一个简单的同步方法。
public async Task Initialize(string dllPath)
{
PrintThePath(dllPath);
}
查看此示例,但似乎没有理由将Initialize
标记为async
。它不执行任何async
工作,也不是override
方法。本身没有必要将此方法标记为async
(并且编译器会警告您这一点)
修改强>
OP指定他们将警告构建为错误,并且即使Initialize
实际上不是await
,也需要维护此模式。以下是禁止警告的代码
#pragma warning disable 1998
public async Task Initialize(string dllPath)
{
PrintThePath(dllPath);
}
#pragma warning restore 1998