C# 等待窗体

 

你可以使用异步显示一个等待窗体,参考代码如下:

public   partial   class   Form1   :   Form 

public   Form1() 

InitializeComponent(); 

//运行时间较长的函数的委托定义 
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.StartPosition   
=   FormStartPosition.Manual; 
fWait.Location   
=   this.button1.Location; 
fWait.Show(
this); 
//刷新这个等待的窗口 
Application.DoEvents(); 
//循环检测是否完成了异步的操作 
while   (true

if   (ir.IsCompleted) 

//完成了操作则关闭窗口 
fWait.Close(); 
break


//取函数的返回值 
object   retValue   =   sd.EndInvoke(ir); 
System.Console.WriteLine(retValue); 



二,这种方式要简便得多

Frm_flash f = new Frm_flash("正在检查更新程序请等待!!!");
f.Show();
Application.DoEvents();
obj_BL_MainForm.ValidateSystem();
//做更新操作
f.Close(); 

 

posted @ 2009-06-12 12:20  大明1986  阅读(4265)  评论(3编辑  收藏  举报