我正在尝试设计一款在摇动手机上生成随机数的游戏。我正在使用 Shake Gesture Library ,请参阅以下链接:
我从以下位置更改默认示例代码:
private void Instance_ShakeGesture(object sender, ShakeGestureEventArgs e)
{
_lastUpdateTime.Dispatcher.BeginInvoke(
() =>
{
_lastUpdateTime.Text = DateTime.Now.ToString();
CurrentShakeType = e.ShakeType;
});
}
TO:
private void Instance_ShakeGesture(object sender, ShakeGestureEventArgs e)
{
PlayButton_Click(null, null);
}
PlayButton_Click()是我的方法,它包含用于生成随机数的rest语句。
我摇动手机,但在进入PlayButton_Click()的第一个声明后,它显示我的错误:
类型' System.UnauthorizedAccessException'的例外情况发生在System.Windows.ni.dll中但未在用户代码中处理
答案 0 :(得分:1)
问题是PlayButton_Click正在访问UI组件,对Instance_ShakeGesture的调用是在非UI线程上进行的,您无法在主UI线程以外的任何线程上访问UI组件。 Dispatcher.BeginInvoke用于将请求放在UI线程上。您需要使用Dispatcher.BeginInvoke来调用PlayButton_Click
Deployment.Current.Dispatcher.BeginInvoke(
() =>
{
PlayButton_Click(null, null);
});