private void btnSearch_Click(object sender, System.EventArgs e)
{
//大数据量操作,另开一个线程去执行
//用户自己写的代码,新开一个线程来执行事件
this.BeginProcess("少々お待ちください!!!",new delegateProcess(this.UpdataTimeZone));
//其他代码
xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
}
private void UpdataTimeZone()
{
//数据更新操作
xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
//操作完成
this.MessageBox.Show("操作成功");
}
------------------------------------------------------------
弹出的messagebox和画面不是一体的,
不用线程的话,不点messagebox的话,画面是点不过去的,
现在用了一个线程来处理数据后,弹出messagebox后,能够点到画面上去

解决方案 »

  1.   

    弹出的messagebox和画面不是一体的, 
    不用线程的话,不点messagebox的话,画面是点不过去的,
    ____________________________
    什么意思?
      

  2.   

    能否将messagebox的第一参数Window owner为主窗口呢?未测试。
      

  3.   

    你用了线程,那个messageBoX是另外一个线程创建的,当然和主界面没有关系,多线程就是这样,可以并行运行,如果按照你的说法,要你自己去控制了,比如把主线程阻塞,
      

  4.   

    子线程结束后通知主线程,由主线程来显示MessageBox
      

  5.   

    可以把MessageBox的返回值传回主线程,让主线程来解决下面的问题
      

  6.   

    private void btnSearch_Click(object sender, System.EventArgs e) 

    //大数据量操作,另开一个线程去执行 
    //用户自己写的代码,新开一个线程来执行事件 
    this.BeginProcess("少々お待ちください!!!",new delegateProcess(this.UpdataTimeZone)); //将BeginProcess中开的线程Join,直到子线程完成,回到主线程
    _myThread.Join();//其他代码 
    xxxxxxxxxxxxxxxxxxxx 
    xxxxxxxxxxxxxxxxxxxxxx 
    xxxxxxxxxxxxxxxxxxxxxx 
      

  7.   


    private delegate DialogResult message(string st);//声明一个代理
    //……………………………………
    private void btnSearch_Click(object sender, System.EventArgs e) 

    //大数据量操作,另开一个线程去执行 
    //用户自己写的代码,新开一个线程来执行事件 
    this.BeginProcess("少々お待ちください!!!",new delegateProcess(this.UpdataTimeZone)); 
    //其他代码 
    xxxxxxxxxxxxxxxxxxxx 
    xxxxxxxxxxxxxxxxxxxxxx 
    xxxxxxxxxxxxxxxxxxxxxx 

    private void UpdataTimeZone() 

    //数据更新操作 
    xxxxxxxxxxxxxxxxxxx 
    xxxxxxxxxxxxxxxxxxxxxxx 
    xxxxxxxxxxxxxxxxxxxxxxx 
    //操作完成 
    this.Invoke(new message(MessageBox.Show), "操作完成");//这里改成这样,不知道行不行啊,呵呵} 
      

  8.   

    我一般这样解决,用那个backgroundworker控件。把大量数据操作放在backgroundworker_dowork()中。
    把一些结束时的反馈放在backgroundWorker_RunWorkerCompleted()
    结合使用backgroundWorker_ProgressChanged,progressbar,还可以给这个大量操作加上进度条。百分比。。