在Windows 8.1中,从MessageDialog获得所选选项时,我遇到了问题。我想要做的是等待用户选择该选项,然后获得所选选项并对其进行处理。
我是这样做的:
... initializing MessageDialog object called dialog ...
answer = (int)dialog.ShowAsync().GetResults().Id但是,answer变量不会被分配,因为GetResults不需要等待用户操作就会立即返回并返回null。
我必须同步获得结果,因为这段代码在属性中,更重要的是在catch块中。
发布于 2015-08-11 12:48:48
您需要等待任务完成,GetResults才会有一个有效的结果。简单的方法是使用“等待”等待对话框的完成:
var cmd = await dialog.ShowAsync();
answer = (int)cmd.Id;不能在属性中调用异步函数,也不能阻止UI线程使MessageDialog同步。
相反,返回一个存根答案并调用另一个函数来获得异步结果。当结果在属性上可用并触发更改通知时。
https://stackoverflow.com/questions/31941891
复制相似问题