[急!!!]弹出的等待对话框如何实现?
C#想实现下面的功能: 
 在处理一个较复杂的操作的时候出现弹出的等待对话框,当处理完成后该对话框自动关闭。 
 要想实现该如何处理?
------解决方案--------------------可以用异步来实现,在开始的时候用BeginInvoke,返回一个IAsyncResult类型的值,检测这个值的.IsCompleted属性如果为True则关闭对话框,并调用EndInvoke就行了.
------解决方案--------------------用backGroundWorker组件,异步运行任务,在结束事件里关闭对话筐
------解决方案--------------------可以用异步来实现,在开始的时候用BeginInvoke,返回一个IAsyncResult类型的值,检测这个值的.IsCompleted属性如果为True则关闭对话框,并调用EndInvoke就行了. 
------解决方案--------------------backGroundWorker是2005里面的 
 你用的是什么版本??   
 如果在03里面需要自己写
------解决方案--------------------backGroundWorker是.netfamework2.0里的,你用1.0就用平民百姓的方法好了
------解决方案--------------------只要你会用BeginInvoke方法了就好说了.
------解决方案--------------------你可以参考下如下的代码,你应定义一个委托,然后调用委托的BeginInvoke方法:   
 //运行时间较长的函数的委托定义 
 private delegate object someMethodDelegate(object someArg);   
 //运行时间较长的函数 
 private object someLongtimeMethod(object someArg) 
 { 
 	//执行较长的操作 
 	return someArg; 
 }   
 private void button1_Click(object sender, EventArgs e) 
 { 
 	//为调用函数而声明委托的实例 
 	someMethodDelegate sd = new someMethodDelegate(this.someLongtimeMethod); 
 	//开始调用函数,可以带参数 
 	IAsyncResult ir = sd.BeginInvoke( "测试参数 ", null, null); 
 	//显示等待的窗口 
 	Form fWait = new Form(); 
 	fWait.Show(this); 
 	//刷新这个等待的窗口 
 	Application.DoEvents(); 
 	//循环检测是否完成了异步的操作 
 	while (true) 
 	{ 
 		if (ir.IsCompleted) 
 		{ 
 			//完成了操作则关闭窗口 
 			fWait.Close(); 
 			break; 
 		} 
 	} 
 	//取函数的返回值 
 	object retValue = sd.EndInvoke(ir); 
 	System.Console.WriteLine(retValue); 
 }