起了10个线程,调用另一个函数来启动client
Thread[] t=new Thread[10];
for(int i=0;i<10;i++)
{
t[i]=new Thread(new ThreadStart(ConnectToServer));
t[i].Start();
}void ConncectToServer()
{
//启动新的Client
//....
Client client=new Client();
}启动成功后,经过一系列的处理,需要对这些client进行释放,在单线程下是直接调用Disconnect()函数就可以了,在多线程下怎么处理,需要对每个线程的资源进行释放。小弟刚接触多线程,还请大侠们赐教!
Thread[] t=new Thread[10];
for(int i=0;i<10;i++)
{
t[i]=new Thread(new ThreadStart(ConnectToServer));
t[i].Start();
}void ConncectToServer()
{
//启动新的Client
//....
Client client=new Client();
}启动成功后,经过一系列的处理,需要对这些client进行释放,在单线程下是直接调用Disconnect()函数就可以了,在多线程下怎么处理,需要对每个线程的资源进行释放。小弟刚接触多线程,还请大侠们赐教!
在整个程序退出时,线程将自动消毁,可在ACTION中设置一个标记令执行其的线程暂停,如
while(true)
{
if( !isStop )
{
执行
}
Thread.Sleep(1);//调用线程暂停,避免CPU占用率100%
}
while(IsRunning)
{
....
}
client.Disconnect();
这样不就完了么?
服务器会收到断开事件吧
然后把IsRunning=false不就OK?
Using(.................)
{
//todo
}