救命啊, 跨线程窗口调用!
原帖: http://community.csdn.net/Expert/topic/5641/5641924.xml?temp=.9125788;
错误出现在:
public void ShowChatRoom()
{
ChatRoom room = CreateChatRoom();
if (room.InvokeRequired)
{
EmptyMethod m = new EmptyMethod(room.Show);
//room.Invoke(m); 用此方法调用, 程序没有响应
m.Invoke(); // 用此方法调用, 出现跨线程调用控件错误
EmptyMethod m2 = new EmptyMethod(room.BringToFront);
////room.Invoke(m2);
room.Invoke(m2);
}
else
{
room.Show();
room.WindowState = System.Windows.Forms.FormWindowState.Normal;
room.BringToFront();
}
}
怎么解决, 谢谢,谢谢, 再谢谢!!!!
------解决方案--------------------小伙子,耐心点,像这样的问题一般很少人会帮你解决,因为要花很长的时间.
主要还是你自己,要花很多精力,仔细的查找源码中的错误,一定能解决的
------解决方案--------------------up
------解决方案--------------------调试解决吧.在这里也看不出哪里有错误
------解决方案--------------------尝试修改为:
public void ShowChatRoom()
{
ChatRoom room = CreateChatRoom();
if (room.InvokeRequired)
{
EmptyMethod m = new EmptyMethod(room.Show);
//room.Invoke(m); 用此方法调用, 程序没有响应
this.Invoke(); // 用此方法调用, 出现跨线程调用控件错误
EmptyMethod m2 = new EmptyMethod(room.BringToFront);