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

发现在一个万分奇怪的多线程问题
我在调戏一个多线程程序时出现工作线程居然有一个子窗口的UI拷贝
具体情况如下:我先是从主窗口new一个子窗口,在子窗口内有一个工作线程进行其它运算,但是当我第一次Dispose窗口时没有问题,但是第二次我再new一个同样的子窗口时,我突然发现在工作线程有一个上一子窗口的UI拷贝!
代码如下:
  void top_OnReadMsg(string msg, EventState state)
  {
  //string m_thread = Thread.CurrentThread.Name;
  if (this.InvokeRequired)
  {
  this.BeginInvoke(new MsgHandler(totop_OnReadMsg), msg, state);
  }
  else
  {
  toolStatus.Text = msg;
  ................
  }
  } 
我在调试,发现第二次this是已经关闭窗口实例
请问下各位达人,这种问题是怎么回事,我如何才能解决?谢了


------解决方案--------------------
探讨
不好意思,打错了,第二次的this我是通过UI控件的值来判定是第一次窗口的实例

------解决方案--------------------
GetHashCode()可靠。

但给的信息有点少,多给点信息,方便找问题。