由于wpf中有主线程和后台线程的区分所以不能直接使用线程进行主线程的操作
之前是使用func来进行线程操作的,因为func自带这对主线程操作的方法,所以直接写会方便很多
后来,要用到多线程的时候在使用func方法就会显得有些麻烦,还是使用c#最经典的thread最好
private Thread _thread;
public MainWindow()
{
InitializeComponent();
Loaded+=MainWindow_Loaded;
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
_thread=new Thread(Show);
_thread.Start();
}
protected new void Show()
{
GridTest.Dispatcher.Invoke(new Action(() =>
{
// this.GridTest.Children.Add(new uc)
GridTest.Visibility = Visibility.Visible;
// 进入主界面操作UI线程
}));
Thread.Sleep(10000);// 模拟操作
GridTest.Dispatcher.Invoke(new Action(() =>
{
// 主ui线程操作