如何解决C#不包含“ GetAwaiter”的定义,并且最佳扩展方法重载要求类型为“ Task”的接收器
我正在尝试制作GTA 5作弊工具,我已经完成了喷油器并正在UI上工作。我试图删除await taskAwaiter;从我的代码,它不会在那时启动 我的代码:
TaskAwaiter<string> taskAwaiter = (await MainWindow.client.PostAsync("https://pastebin.com/Mypaste",new FormUrlEncodedContent(nameValueCollection))).Content.ReadAsStringAsync().GetAwaiter();
if (!taskAwaiter.IsCompleted)
{
await taskAwaiter;
TaskAwaiter<string> taskAwaiter2;
taskAwaiter = taskAwaiter2;
taskAwaiter2 = default(TaskAwaiter<string>);
}
if (taskAwaiter.GetResult() != "success")
{
this.UpdateStatus("Auth failed");
this.TimeoutReset();
this.cant_click = false;
}
else
{
this.UpdateStatus("Logged in");
File.WriteAllText(this.auth_file,this.user.ToString());
this.Download();
}
解决方法
await
运算符不适合与等待者一起使用-它本身会调用GetAwaiter
(如有必要)。
尚不清楚您要在这里实现什么,并且看起来像半反编译的代码,但我怀疑您只想要这样的东西:
using (var response = await MainWindow.client.PostAsync("https://pastebin.com/Mypaste",new FormUrlEncodedContent(nameValueCollection)))
{
var text = await response.Content.ReadAsStringAsync();
if (text == "Success")
{
UpdateStatus("Logged in");
File.WriteAllText(auth_file,user.ToString());
Download();
}
else
{
UpdateStatus("Auth failed");
TimeoutReset();
cant_click = false;
}
}
在每种情况下,使用此代码,await
运算符都用于任务,而不是 awaiter 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。