C# IDialogTask的Void()和PollAsync()方法的作用是什么?
我正在按照发布的说明为我的机器人创建一个全局处理程序。作为对某些关键字(“帮助”)的回应,我想使用以下命令转发到一个对话框:C# IDialogTask的Void()和PollAsync()方法的作用是什么?,c#,botframework,C#,Botframework,我正在按照发布的说明为我的机器人创建一个全局处理程序。作为对某些关键字(“帮助”)的回应,我想使用以下命令转发到一个对话框: var replyDialog = new CommonResponsesDialog($"Sometimes I also feel **{state}**..."); var interruption = replyDialog.Void<object, IMessageActivity>(); _task.Call(interruption, null)
var replyDialog = new CommonResponsesDialog($"Sometimes I also feel **{state}**...");
var interruption = replyDialog.Void<object, IMessageActivity>();
_task.Call(interruption, null);
await _task.PollAsync(token);
var replyDialog=newcommonresponsedialog($“有时我也觉得**{state}**…”);
var interruption=replyDialog.Void();
_任务调用(中断,空);
wait_task.pollsync(令牌);
有两件事尚不清楚:
- 什么是
replyDialog.Void()代码>正在做什么?即使读了这本书,我也不明白。为什么我不能直接按下
replyDialog
- 什么是
await\u task.PollAsync(令牌)代码>用于
Void
是将replyDialog
包装成一个附加对话框,该对话框将负责在子对话框(您的replyDialog
)完成后重新启动用户的等待消息
.Call
将中断对话框放在堆栈上,.pollsync
开始运行中断对话框
如果查看VoidDialog
class(),您将看到:
VoidDialog
参数不应该是
IAwaitable
而不是IAwaitable
?这无关紧要,但问题是/曾经是其他问题。我必须改变我的问题…你读过了吗:这个方法的目的是用一个新的对话框D来包装一个先前的对话框A,以在现有的堆栈顶部对话框L的顶部推动堆栈。我读过了,但对我来说没有多大意义。为什么我要用D包裹A,然后把它推到L上?在我的情况下,A是什么?什么是D?我是什么?为什么不把“A”(我想那是我的replyDialog
)推到堆栈上呢?