C# winform 实现弹出的等待对话框
C#想实现下面的功能:
在处理一个较复杂的操作的时候出现弹出的等待对话框,当处理完成后该对话框自动关闭。
要想实现该如何处理?
------解决方案--------------------用一个线程
1、用线程来处理复杂操作;
2、前台程序程序的对话框负责显示等待信息,
3、使用委托来处理关闭,纯种结束时通过委托关闭对话框。
------解决方案--------------------System.ComponentModel.BackgroundWorker()
很适合实现你的功能。MSDN看看吧,很详细
------解决方案--------------------在Form1窗体中(主窗体)
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.ShowDialog(this);
}
在Form2窗体中(弹出窗体)
using System.Threading;
//线程对象
Thread tWork ;
//退出标志
bool bExit = false;
//当页面加载时开始线程
private void Form2_Load(object sender, EventArgs e)
{
tWork = new Thread(new ThreadStart(Work));
tWork.Start();
}
//
void Work()
{
int i = 0;
while (!bExit)
{
i++;
Thread.Sleep(1);
if (i > 100) break;
}
this.BeginInvoke(new EventHandler(WorkOver), new object[] { null,null});
}
//点击取消退出
private void button1_Click(object sender, EventArgs e)
{
bExit = true;
if (tWork.Join(1000) == false)
{
tWork.Abort();
}
Close();
}
//当工作结束
private void WorkOver(object sender, EventArgs e)
{
Close();
}