110,538
社区成员
发帖
与我相关
我的任务
分享
public void Entrance()
{
this.sendThread = new Thread(new ThreadStart(SendThreadProc));
sendThread.Name = "Send Thread";
sendThread.Start();
this.receiveThread = new Thread(new ThreadStart(ReceiveThreadProc));
receiveThread.Name = "Receive Thread";
receiveThread.Start();
}
private int checkCount = 0;
//Entrance实际是每分钟调用一次的检查线程:
public void Entrance()
{
//如果线程不存在则退出
if(sendThread == null)
return;
//等待1秒,判断是否结束
if(sendThread.Join(1000))
{
RestartThread();
}
else
{
checkCount++;
}
//如果count大于3次,说明线程已经有3分钟以上没有响应了。
if(checkCount > 3)
{
//那么强制干掉,重启线程
try
{
sendThread.Abort();
}
catch
{}
checkCount = 0;
RestartThread();
}
}
private void RestartThread()
{
this.sendThread = new Thread(new ThreadStart(SendThreadProc));
sendThread.Name = "Send Thread";
sendThread.Start();
this.receiveThread = new Thread(new ThreadStart(ReceiveThreadProc));
receiveThread.Name = "Receive Thread";
receiveThread.Start();
}
public void Entrance()
{
if(this.sendThread != null)
{
try
{ this.sendThread.Abort(); }
catch
{}
}
this.sendThread = new Thread(new ThreadStart(SendThreadProc));
sendThread.Name = "Send Thread";
sendThread.Start();
...
}
public void Entrance()
{
while(。。。)
{
this.sendThread = new Thread(new ThreadStart(SendThreadProc));
sendThread.Name = "Send Thread";
sendThread.Start();
this.receiveThread = new Thread(new ThreadStart(ReceiveThreadProc));
receiveThread.Name = "Receive Thread";
receiveThread.Start();
Thread。Sleep(XX);
}
}