0

(新手异步/等待)

我正在链接一个正在深入到许多类的 Initialize() 函数。
每个类都有这个初始化方法:

    public async Task Initialize(string fileName)

当我进入最后一堂课时,我该怎么办?
我想运行一个简单的函数,例如:

public async Task Initialize(string dllPath)
{         
    await PrintThePath(dllPath);
}

public void PrintThePath(string dllPath)
{
     Console.WriteLine(dllPath);
}

当然,我收到“无法等待无效”错误。
所以我在逻辑上做错了什么。

有人可以解释一下吗?

4

1 回答 1

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
于 2013-03-11T15:41:49.823 回答