//--显示等待窗体
private void ShowWaitMess()
{
try
{
waitMess.ShowDialog();
}
catch( ThreadAbortException Err )
{
}
}
//--关闭等待窗体
private void CloseMess()
{
try
{
if( !waitMess.IsDisposed )
{
waitMess.Close() ;
}
}
catch( ThreadAbortException Err )
{
}
}//--新开辟一个线程调用
private void ShowMess( string TypeStr , string TypeTxt )
{
try
{
waitMess = new W_MessShow(TypeStr , TypeTxt );
Thread upgradeThread = null ;
upgradeThread = new Thread(new ThreadStart(ShowWaitMess));
upgradeThread.Start();
}
catch( ThreadAbortException Err )
{
}
}
//在主程序中调用
ShowMess("XMLDeal","正从XML文件中获取数据...");
ReadDataFormXML( string XMLPath , ref DataSet DS ) //需要花费几分钟
CloseMess();问题:
------------------------------------------------------
有时候出现控件成红色的"X",然后整个应用程序退出
private void ShowWaitMess()
{
try
{
waitMess.ShowDialog();
}
catch( ThreadAbortException Err )
{
}
}
//--关闭等待窗体
private void CloseMess()
{
try
{
if( !waitMess.IsDisposed )
{
waitMess.Close() ;
}
}
catch( ThreadAbortException Err )
{
}
}//--新开辟一个线程调用
private void ShowMess( string TypeStr , string TypeTxt )
{
try
{
waitMess = new W_MessShow(TypeStr , TypeTxt );
Thread upgradeThread = null ;
upgradeThread = new Thread(new ThreadStart(ShowWaitMess));
upgradeThread.Start();
}
catch( ThreadAbortException Err )
{
}
}
//在主程序中调用
ShowMess("XMLDeal","正从XML文件中获取数据...");
ReadDataFormXML( string XMLPath , ref DataSet DS ) //需要花费几分钟
CloseMess();问题:
------------------------------------------------------
有时候出现控件成红色的"X",然后整个应用程序退出
解决方案 »
- 参数无效
- 求高手指点,报表打印
- Windows Forms中DataGridView数据绑定的问题
- c#这样的对象应该怎样定义?
- 求助,如何用字符串拼一个Table的问题
- 初学C#,问个问题。
- asp.net+c#的三层构架程序(与duwamish7相同)怎么不能调试,是不是哪里设置有问题?
- 3个label,做的tab标签,怎样能统一管理他们的事件。求个大哥们个办法!
- 本人是初学者,刚看到类的定义,为什么要隐藏基类方法啊,还有继承的成员是虚拟的什么意思啊?
- CvtInt32()在那个命名空间中?
- 有关XML 与DataSet 求助
- 问个简单问题:WPF的Listview行与行,列与列之间怎样加线条?就像winform 2.0的DataGridView那样?
{
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);
}
}
/// <summary>
/// 显示当前数据导入的进度条进度
/// </summary>
/// <param name="CurrentValue"></param>
/// <param name="MaxValue"></param>
private void ShowPress(int CurrentValue,int MaxValue,string Name)
{
this.DataprogressBar.Minimum = 0;
this.DataprogressBar.Maximum = MaxValue; this.DataprogressBar.Value = CurrentValue;
this.lb_PressTest.Text = "正在导入机构" + Name +"的数据..."; System.Threading.Thread.Sleep(100);
}
{
if (waitMess.InvokeRequired)
waitMess.Invoke(new CloseFormDelegate(DoCloseJob));
else
DoCloseJob();}private void DoCloseJob()
{
try
{
if (!waitMess.IsDisposed)
{
waitMess.Close();
}
}
catch (ThreadAbortException Err)
{
}
}
这时候你的主程序再调用CloseMess就不回出现原来的问题,你可以试下.
自我吹嘘一下,非常简单
││博客空间:http://blog.csdn.net/lovingkiss
││资源下载:http://download.csdn.net/user/lovingkiss
││Email:loving-kiss@163.com [MSN也是这个]
││联系方式:Q66840199 项目、聊天、咨询、探讨、统统收费,呵呵......
╚---------------------------------------------------------------------------------------------------------ō*︻$▅▆▇◤