c# - 不包含 GetAwaiter 的定义 - 如何重写此方法
问题描述
我得到了这个代码:
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 指令或程序集引用?)
如何正确重写此方法?我认为那里的方法过于复杂。
解决方案
好吧,看来您可以只使用async await
和删除其余的东西:
private async Task Connect()
{
try
{
await this.myServerResponse();
...
推荐阅读
- python - Pandas to_dict() 将日期时间转换为时间戳
- c++ - 错误:找到一个或多个多重定义的符号
- flutter - 为 Flutter 中动态生成的 TextFormField 生成 TextEditingController
- javascript - 如何通过 useFormik Hook 使用 Radio Group
- python - 从 create_engine (postgresql) 获取列
- python - matplotlib lib 引发归因错误:模块“matplotlib.rcsetup”没有属性“_validators”
- python - 删除字符串中的转义字符,如换行符、制表符、回车符等
- python-3.x - Python3:以编程方式列出虚拟环境中所有已安装的包和版本
- php - 以php形式动态发送输入和选择字段
- idris - 在 Idris 中,当类型参数已经在别处定义时,为什么我们需要将类型归于类型参数?