请大家帮忙 一个线程关闭的问题!
一个类中有两个方法
1.线程开始
void start()
{
Thread tr = new Thread(new ThreadStart(send));
tr.IsBackground = true;
tr.Start();
}
2.线程关闭
void stop()
{
这里这么写呢?
}
问题 怎么在我的stop()方法内结束线程tr
------解决方案--------------------线程执行完会自动销毁
强行结束用Thread.abort();
------解决方案--------------------没用过线程,也不懂,,
帮顶
------解决方案--------------------Thread tr;
void start()
{
tr = new Thread(new ThreadStart(send));
tr.IsBackground = true;
tr.Start();
}
2.线程关闭
void stop()
{
if (tr!= null)
{
if (tr.ThreadState != ThreadState .Aborted || tr.ThreadState != ThreadState.Stopped)
{
tr.Abort();
}
}
}
大概是这个样子吧,线程的状态判断可能写的不全
------解决方案--------------------你要编多线程的程序? 发送封包? 你的程序不像C#类的编写方式.
class SendThread
{
private Thread tr;
public void start()
{
tr = new Thread(new ThreadStart(send));
tr.IsBackground = true;
tr.Start();
}
//2.线程关闭
public void stop()
{
if (tr!= null)
{
if (tr.ThreadState != ThreadState .Aborted || tr.ThreadState != ThreadState.Stopped)
{
tr.Abort();
}
}
}
}
然后外部用 SendThread st1= new SendThread();
st1.Start(); st1.stop();来调用。 不过多线程的貌似还要考虑其他东西,否则线程容易失去控制。
不是实例调用,都需要声明成static的。