C# 如何等待用户的响应?

C# 如何等待用户的响应?,c#,discord.net,C#,Discord.net,在一个频道问了一个问题之后 await channel.SendMessageAsync("question?"); 我如何等待特定的响应?(例如是,不是) 我试过了 string input; bool done = false; while(!done) { input = channel.GetMessageAsync(channel.Id).ToString(); if (String.Compare(input, "yes") == 0) {

在一个频道问了一个问题之后

await channel.SendMessageAsync("question?");
我如何等待特定的响应?(例如是,不是) 我试过了

string input;
bool done = false;
while(!done)
{
     input = channel.GetMessageAsync(channel.Id).ToString();
     if (String.Compare(input, "yes") == 0)
     {
          //code here
          done = true;
     }
     else if (String.Compare(input, "no") == 0)
     {
          //code here
          done = true;
     }
}
但它似乎不起作用

 input = channel.GetMessageAsync(channel.Id).ToString();
毫无意义
GetMessageAsync()
希望您提供messageID而不是通道ID

现在,您还不知道尚未发送的消息的ID,因此,与其循环到无限远,不如让消息可能会或永远不会出现。我建议您改为在消息/命令处理程序中处理此问题

在这里,您可以跟踪一个列表,其中包含触发您初始命令的人员。之后,您可以检查他们的消息是否包含“是/否”或其他内容