【发布时间】:2021-07-24 02:44:45
【问题描述】:
我得到了这个代码:
public async Task myServerResponse()
{
Task.Run(new Func<Task>(..));
await this.ConnectSomewhere(...);
...
// this method does not have any return
}
private async Task Connect()
{
try
{
bool myFlag = true;
var taskAwaiter = this.myServerResponse().GetAwaiter();
if (!taskAwaiter.IsCompleted)
{
await taskAwaiter;
taskAwaiter = default(TaskAwaiter);
myFlag = false;
}
if (myFlag)
taskAwaiter.GetResult();
...
但是,在上面写着await taskAwaiter; 的地方显示
错误 CS1061:“TaskAwaiter”不包含“GetAwaiter”的定义,并且找不到接受“TaskAwaiter”类型的第一个参数的可访问扩展方法“GetAwaiter”(您是否缺少 using 指令或程序集引用? )
如何正确重写此方法?我认为那里的方法过于复杂。
【问题讨论】:
标签: c# async-await