我用了socket控件,控件中有一个error事件
private void axWinsock1_Error(object sender, AxMSWinsockLib.DMSWinsockControlEvents_ErrorEvent e)
{
if (eveSocketError != null)
eveSocketError(sender, new EventArgs());
} private delegate void delSocketError(object sender,EventArgs e);
private event delSocketError eveSocketError; private void SocketErrorSender()
{
if (eveSocketError != null)
eveSocketError(new object(), new EventArgs());
} private void SocketError(object sender, EventArgs e)
{
ScoketWrite.Close(axWinsock1); strConnectStatus = "not connected";
clrConnectStatus = Color.Red;
if (toolStaEvent != null)
toolStaEvent(sender, new EventArgs());
//System.Threading.Thread.Sleep(300);
ScoketWrite.Open(axWinsock1, "Write"); strConnectStatus = "TCP连接已经建立";
clrConnectStatus = Color.Green;
if (toolStaEvent != null)
toolStaEvent(this, new EventArgs());
}
strConnectStatus
clrConnectStatus 这两个是属性。在窗口的控件的error事件里面,似乎因为error事件是窗口的主线程,所以即使把事件里面代码放入到委派里面,窗口还是卡的,请教,请教,请教了?
private void axWinsock1_Error(object sender, AxMSWinsockLib.DMSWinsockControlEvents_ErrorEvent e)
{
if (eveSocketError != null)
eveSocketError(sender, new EventArgs());
} private delegate void delSocketError(object sender,EventArgs e);
private event delSocketError eveSocketError; private void SocketErrorSender()
{
if (eveSocketError != null)
eveSocketError(new object(), new EventArgs());
} private void SocketError(object sender, EventArgs e)
{
ScoketWrite.Close(axWinsock1); strConnectStatus = "not connected";
clrConnectStatus = Color.Red;
if (toolStaEvent != null)
toolStaEvent(sender, new EventArgs());
//System.Threading.Thread.Sleep(300);
ScoketWrite.Open(axWinsock1, "Write"); strConnectStatus = "TCP连接已经建立";
clrConnectStatus = Color.Green;
if (toolStaEvent != null)
toolStaEvent(this, new EventArgs());
}
strConnectStatus
clrConnectStatus 这两个是属性。在窗口的控件的error事件里面,似乎因为error事件是窗口的主线程,所以即使把事件里面代码放入到委派里面,窗口还是卡的,请教,请教,请教了?
还要强调一下,我用的是socket控件,暂时不大可能改成socket类,所以不用把重点放在socket类上。
请教这个世纪问题怎么解决