问题描述
- WPF多线程打开窗口,结束线程后窗口无法自动关闭
-
有一个读取文件的程序在读大文件的时候容易假死,我用多线程打开一个窗口显示“正在读取,请稍后” ,当文件读取完了之后再用abort()和join()方法结束进程,但是后弹出的窗口依然还在屏幕上显示,必须用鼠标点一下其他任意地方,显示“正在读取,请稍后” 窗口才会消失,请问如何解决这种问题??
public class Worker ? ?//多线程打开的窗口 { // This method will be called when the thread is started. public void DoWork() { DataProgress dataprogress1 = new DataProgress(); dataprogress1.Show(); System.Windows.Threading.Dispatcher.Run(); ? ?//不加这句窗口会闪现后消失 } } ?private bool readFile() //文件的读取 { ? ? ? ?Worker workerObject = new Worker(); ? ? ?//打开窗口线程,窗口中显示“正在读取,请稍后” Thread workerThread = new Thread(new ThreadStart(workerObject.DoWork)); workerThread.SetApartmentState(ApartmentState.STA); workerThread.IsBackground = true; ? ? ? ?//读文件的过程 ? ? ? ?for(。。。。。。) ? ? ? ?//文件读完 ? ? ? ? ? ? ? ?workerThread.Abort(); workerThread.Join(); ? ? ?//此处线程是结束了,但是新打开的窗口无法自动关闭,随便点什么地方多线程新打开的窗口才会消失,不点就不会消失。该如何解决? }
时间: 2024-11-10 07:45:31