C# Bot Framework对话中信息与确认提示顺序异常问题求助
Bot Framework中信息展示与确认对话框顺序问题的解决办法
我之前也碰到过一模一样的问题!在基于C# Bot Framework开发聊天应用时,明明想先把补充好的信息展示给用户,再弹出带Yes/No按钮的确认对话框,可有时候确认提示偏偏抢在信息前面出现,真的很影响用户体验。
问题根源
这其实是异步操作的顺序问题:context.PostAsync是一个异步方法,默认情况下代码不会等待它执行完成就会继续往下运行PromptDialog.Confirm。如果消息发送的异步任务还没完成,确认对话框的请求就已经被处理了,自然会出现顺序颠倒的情况。
解决办法
只需要给context.PostAsync加上await关键字,确保消息完全发送给用户后,再触发确认对话框即可。修改后的代码如下:
await context.PostAsync("Information to display"); PromptDialog.Confirm(context, OnConfirmation, "Do you really want to proceed ?", "Didn't get that", 3, PromptStyle.Auto);
加上await之后,代码会等待PostAsync的异步任务完成,再执行后续的确认对话框逻辑,这样就能保证信息先展示,确认框后出现的理想顺序了。
内容的提问来源于stack exchange,提问作者Amol Pawar
相关产品推荐
相关产品推荐

