日期:2014-05-17  浏览次数:21273 次

C#多线程中ShowDialog()方法无效
 
private void Form1_Load(object sender, EventArgs e)
{
    Thread thread = new Thread(remind);
    thread.IsBackground = true;
    thread.Start();
}
private void remind()
{
   while (true)
   {
      string h = "0";
      string m = "23";
      if (h == DateTime.Now.Hour.ToString() && m == DateTime.Now.Minute.ToString() && DateTime.Now.Second.ToString() == "0")
      {
          Form2 form2 = new Form2();
          form2.ShowDialog();
          Thread.Sleep(1000);
      }
   }
}

form2的ShowDialog()显示并不是模式窗体,如何解决这种情况???
多线程中ShowDialog()方法无效

------解决方案--------------------
http://msdn.microsoft.com/zh-cn/library/0b1bf3y3(v=vs.100).aspx
------解决方案--------------------
非UI线程不能打开窗口,
------解决方案--------------------
我的天,多线程访问界面应该使用Control.Invoke委托让UI线程自己做,难道这个都不知道?
------解决方案--------------------
this.Invoke(some delegate);//同步
or
this.BeginInvoke(some delegate);//异步