一个Wsocket类里。开一个线程去接收,接收完后有一个OnFinish事件。然后就在FORm类里进行处理。代码如下: private void OnFinish(object sender,int id)
{
int i = id;
try
{
SocClient[i].Soc.Close();
}
catch(Exception ee)
{
myfile.WriteToFile("关闭时发生错误 :" +ee.ToString(),"关闭Socket");
SocClient[i] = null;
return;
}
SocClient[i].OnHttp -= new HTTPDelegate(OnHttp);//清除事件
SocClient[i].OnFinish -= new FinishDelegate(OnFinish);
if(SocClient[i].th !=null) //关闭线程
if(SocClient[i].th.IsAlive)
SocClient[i].th.Abort(); SocClient[i] = null;
myfile.WriteToFile("编号:"+i.ToString()+"关闭","Socket");
}我发现最后运行不到
myfile.WriteToFile("编号:"+i.ToString()+"关闭","Socket");这行代码。如果把线程关闭后,那他所有的事件也会中止吗?我一直认为Onfinish函数在Form类里。所以我认为这个函数的代码和WSocket类里没关系的。大家讨论一下。。
{
int i = id;
try
{
SocClient[i].Soc.Close();
}
catch(Exception ee)
{
myfile.WriteToFile("关闭时发生错误 :" +ee.ToString(),"关闭Socket");
SocClient[i] = null;
return;
}
SocClient[i].OnHttp -= new HTTPDelegate(OnHttp);//清除事件
SocClient[i].OnFinish -= new FinishDelegate(OnFinish);
if(SocClient[i].th !=null) //关闭线程
if(SocClient[i].th.IsAlive)
SocClient[i].th.Abort(); SocClient[i] = null;
myfile.WriteToFile("编号:"+i.ToString()+"关闭","Socket");
}我发现最后运行不到
myfile.WriteToFile("编号:"+i.ToString()+"关闭","Socket");这行代码。如果把线程关闭后,那他所有的事件也会中止吗?我一直认为Onfinish函数在Form类里。所以我认为这个函数的代码和WSocket类里没关系的。大家讨论一下。。
http://blog.csdn.net/knight94/archive/2006/03/16/626584.aspx