首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

[急]弹出的等待对话框怎么实现

2012-02-28 
[急!!!]弹出的等待对话框如何实现?C#想实现下面的功能:在处理一个较复杂的操作的时候出现弹出的等待对话框

[急!!!]弹出的等待对话框如何实现?
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);
}

热点排行