新建SL4 應(yīng)用程序,在MainPage下添加代碼:
<Button x:Name="btnThread1" Click="btnThread1_Click">Thread1</Button>
后臺(tái)代碼為:
這個(gè)問(wèn)題的原因很簡(jiǎn)單:一個(gè)線程嘗試調(diào)用另一個(gè)線程的方法 解決這個(gè)異常的方式很簡(jiǎn)單,
1:使用DependencyObject.Dispatcher.BeginInvoke 方法:
new Thread(() =>
{
context.Post((state) =>
{
MessageBox.Show("Hello World");
}, null);
}).Start();
}
new Thread(() =>
{
context.Post((state) =>
{
MessageBox.Show("Hello World");
}, null);
}).Start();
}).Start();
}
所以提出了第三種方案:
1:新建靜態(tài)類UISynchronizationContext,代碼如下:
public App()
{
this.Startup += this.Application_Startup;
this.Exit += this.Application_Exit;
this.UnhandledException += this.Application_UnhandledException;
//保存UI線程同步上小文
UISynchronizationContext.Context = SynchronizationContext.Current;
InitializeComponent();
}
System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() =>
{
MessageBox.Show("Hello World");
});
}).Start();
}).Start();
新聞熱點(diǎn)
疑難解答
圖片精選