程序有一个主窗体,点击主窗体内的按钮创建一个新的线程,设为线程A。
在线程A内完成主窗体的主要功能逻辑处理,因此会有很多消息框,这时问题出现了。在单线程状态下,这些消息框都为模态窗体形式,但是多线程,也就是由线程A创建的消息框与主窗体不能形成有效的模态状态。这样子,一些逻辑就由于消息框非模态而变得混乱不堪!
请问大家有什么好的解决办法没有?
在线等,多谢!

解决方案 »

  1.   

    用 INVOKE吧在主线程执行的。
      

  2.   

    多线程里最好不要搞消息框,你可以在窗体里的某一个区域用Label方式提醒用户,如果怕用户看不到,可以把提示的Label颜色设醒目点
      

  3.   

    我既有Label又有消息框。消息框主要是为了表示分级、分步骤的,让用户选择操作下一步执行的方式!
     leehong0704 的INVOKE方法能否说的再详细一点?
    多谢各位!
      

  4.   

    在拥有此控件的基础窗口句柄的线程上执行委托。  重载列表 
    名称  说明  
    Control.Invoke (Delegate)  在拥有此控件的基础窗口句柄的线程上执行指定的委托。 
    由 .NET Compact Framework 支持。 
     
    Control.Invoke (Delegate, Object[])  在拥有控件的基础窗口句柄的线程上,用指定的参数列表执行指定委托。 
    由 .NET Compact Framework 支持。 
     
      

  5.   

    多谢,我已经搞定了。
    呵呵,我的线程A控制主窗体的Label显示也是INVOKE的。
    结贴啦!