【发布时间】:2013-02-26 22:03:16
【问题描述】:
我正在构建简单的 WP8 应用程序。我正在尝试使用作为另一个类成员的集合来更新ListPicker 控件。此类通过异步调用获取此数据。当收到响应触发 MainPage 上更新 ListPicker 的事件时。
public void coinUtil_ReceivedPriceEvent(object sender, EventArgs e)
{
PopulateListPicker();
}
public void PopulateListPicker()
{
try
{
foreach (KeyValuePair<string, double> item in coinUtil.cointPriceList)
{
listPickerCurrencies.Items.Add(item.Key);
}
}
catch (UnauthorizedAccessException ex)
{
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
}
我收到以下异常:
“System.UnauthorizedAccessException”类型的第一次机会异常 发生在 System.Windows.ni.dll 中
“System.UnauthorizedAccessException”类型的异常发生在 System.Windows.ni.dll 并且在托管/本机之前未处理 边界 System.UnauthorizedAccessException:无效的跨线程 使用权。在 MS.Internal.XcpImports.CheckThread() 在 System.Windows.DependencyObject.GetValueInternal(DependencyProperty dp) 在 System.Windows.FrameworkElement.GetValueInternal(DependencyProperty dp) 在 System.Windows.Controls.ItemsControl.get_Items() 在 BitCoinTail.MainPage.PopulateListPicker()
奇怪的是,当我尝试用一个简单的字符串访问这个类的另一个成员时,它工作正常。我在 WP7 中进行了一些开发,但不记得曾经遇到过这个异常。谁能看到我做错了什么?
【问题讨论】:
-
我认为您需要使用 Dispatcher 来确保 UI 在 UI 线程上更新。
标签: c# windows-phone-8