我目前遇到了使我的Windows Phone应用程序执行跨线程操作的问题。
在defualt C#[Windows Form Application]中,有一个名为“CheckForIllegalCrossThreads”的选项/变量 - 如果将此variables属性设置为“False”,则应用程序不再检查运行时操作期间的非法交叉线程。
实际问题:此变量是否存在于Silverlight Windows Phone应用程序项目中的其他名称下?
Thread myThread;
public MainPage()
{
InitializeComponent();
myThread = new Thread(ThreadPromt);
myThread.Start();
}
Private void ThreadPromt()
{
Dispatcher.BeginInvoke(deleage(
MessageBox.Show(string.Format("Accessed from another thread: {0}", SampleLabel.Text);
ButtonSample.Text = "Accessed from another thread...";
);
}
答案 0 :(得分:2)
实际问题:此变量是否存在于silverlight Windows Phone应用程序项目中的其他名称下?
即使它确实如此,也不应该使用它。将值设置为false也不是在Windows窗体下执行的操作。
如果您的汽车中的“低燃油”指示灯亮起,您是否断开它,或者您为汽车加油?这同样适用于:修复问题,而不是警告。不要直接从UI线程访问UI元素。在Windows窗体中使用Control.Invoke
/ BeginInvoke
,或在WPF / Silverlight中使用Dispatcher.Invoke
/ BeginInvoke
来编组UI线程的执行。