我现在用TCPServer的sendMessage发送了一个消息到客户端,然后客户端机器同样发送一个消息回来,以前接收都没有问题的,可是当我现在新建了一个窗体,在这个窗体接收消息时却出现了问题,我设置断点看了下,消息根本就没受到,断点也没有执行。可是,当我关闭这个窗体的时候,消息来了,断点也开始往下执行了。郁闷很久,百思不得其解,难道是我这个窗体阻碍了消息的接收??要不然为什么我关闭窗体了消息就能收到了?请TCP方面的高手帮忙想想啊。小弟感激不尽!!!
调试欢乐多
private void ShowForm()
{
Program.frmMain._HistoryInfo.ShowDialog();
}
然后新建个线程来调用这个方法,从而ShowDialog出来这个窗体:
_thread = new System.Threading.Thread(this.ShowForm);
_thread.Start();
_thread.IsBackground = true;奇怪了,为什么这样做不但没有ShowDialog()出那个窗体,连这个窗体也给关了,还有ShowDialog出这个窗体的窗体也都给关了。我快崩溃了!!!
public delegate void MessageHandle(string mssage);
public partial class Form1 : Form
{
MessageHandle MH ;
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
MH = new MessageHandle(ShowMessage);
ReceiveMsg();
}
private void ShowMessage(string Msg)
{
MessageBox.Show(Msg);
}
private void ReceiveMsg()//这个就是你TcpServer接收的方法
{
this.Invoke(MH, new string[] { "sscccv" });//假设sscccv为你接收的数据
}
}