我在做一个文件搜索的窗口时,开了一个线程来显示当前所索的文件名(更新Label.Text),但搜索完之后我想弹出一个对话框来显示搜索的结果(MessageBox.Show()),但是弹出对话框的时机总是不对,我一点开始搜索,他就弹出了,
源码:
private void button1_Click(object sender, EventArgs e)
{
drawThread = new Thread(new ThreadStart(FindFile));
//FindFile()为工作线程的函数
drawThread.Start();
MessageBox.Show("显示搜索结果");
------------
哪位能帮我看看是什么原因吗?,我想在线程结束后才显示对话框
源码:
private void button1_Click(object sender, EventArgs e)
{
drawThread = new Thread(new ThreadStart(FindFile));
//FindFile()为工作线程的函数
drawThread.Start();
MessageBox.Show("显示搜索结果");
------------
哪位能帮我看看是什么原因吗?,我想在线程结束后才显示对话框
你说的方法我当时也试了,只是我要对窗口其它控件做下一步操作,如:label2显示共搜索了多少个文件。这种操作是要控制工作线程外的线程所创造的控件,是不允许。所以不能放到FindFile()这个方法中去
{
....
Finished();
}void Finished()
{
MessageBox.Show("Over");
}
2.
drawThread = new Thread(new ThreadStart(FindFile));
drawThread.Start();
while (false == finished)
{
Thread.Sleep(100); // 休眠的值不要太小,也不要太大,可能需要运行几次才能找到合适的值
}
MessageBox.Show("显示搜索结果");
drawThread.Start();
drawThread.Join();
MessageBox.Show("显示搜索结果");
如果不确定时间,办法还是有的,就是不清楚FindFile()里
是个什么情况,做个标识位呢
if(biaoshi==1)
{
MessageBox.Show("显示搜索结果");
}