c#线程关闭的问题。。。。。。。。。。。

创建了5个“同名”的线程,如何在其中一个线程里关闭这一个线程,就是某个线程的任务执行完了让它自己关闭自己

线程函数退出,该线程即退出。

Abort函数主要是用来给其它线程关闭当前线程使用的。当前当前线程也可以使用,象下面这样‘Thread.CurrentThread.Abort’,不过一般不建议使用Abort因为他会引发ThreadAbortException异常,导致你失去对某些代码的控制。可能话reutn当前线程函数来结束线程。

线程结束后,在线程函数中创建的托管资源会自动释放,非托管资源还需要手工释放。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-24
不需要关吧~,线程一旦启动,就不必保留对 Thread 对象的引用。 该线程会继续执行,直到线程过程结束为止。
意思很明白,没必要保留Thread对象的引用,就说明我们如果不想去关心他那就随他去。在结束了线程的入口函数后就会关闭线程释放资源,当然,如果是非托管资源还是要手动释放的追问

那abort()方法还有什么用?强制关闭?
假如一个线程里有一个while(true)循环,是不是当break结束循环的时候这个线程就会自动关闭释放资源?

本回答被网友采纳
第2个回答  2012-12-24
路过! 马克

在C#中如何关闭线程
线程没有实例化这个概念,只有启动,停止,暂停等方法, 每个线程都会有一个名字,调用每个线程的 Abort() 方法就可以停止该线程了。补充:你的变量名是在哪里声明的? 如果要在另一个按钮事件中也能访问,必须声明为类的变量。

C# 停止线程的问题
你的代码逻辑我是这样理解的,遍历N个线程,如果线程状态不是stopped,就终止该线程 那你可以这样:private void Stop_Click(object sender, EventArgs e){ foreach (Thread threada in thread){ \/\/如果线程状态不为stopped,执行if里的业务逻辑代码 if (threada.ThreadState != ThreadState.Stopped){...

我也遇到了一个线程自动停止的问题 C#
估计是循环中的代码因为某种原因出错了,把你while循环里的代码前后加个 while(true){try{\/\/你的代码}catch(exception e){\/\/将e.message记录一下,至于写入哪里随你的,比如存在文件或者写入系统日志中,建议用后者。}Thread.Sleep(5000);}再出错的时候检查一下这个日志看看问题在哪。

c#启动和结束线程的问题
2.一个线程应该有穷,也就是说执行完毕就应该退出而不应该长期占用资源(除了主线程),所以在Session_End中销毁是不好的设计,也会导致异常的抛出。

c#关闭窗口怎么强制退出所有运行的线程
将线程的isbauckground设置为true 当住线程关闭时(也就是推出程序时),其他线程将自动关闭

C#语言,处理多线程时,让线程运行死循环,却有线程在处理数据时,意外退 ...
你的代码肯定有数据的错误,比如int型超过21亿溢出,非数字型字符串强制转换数字型,等等任何数据的错误都会导致线程退出,你把死循环整个try{}catch{}起来,就不会退出了

C#线程程序运行几小时后无故退出
内存不够了,想想,用线程每隔几秒就访问一次,然后创建一个线程,你还定义的是全局的线程,每次都new 一个,没有释放,几个小时就会new出来几万甚至几十万个线程,都不被释放,超级计算机也禁不起这么折腾,要么在逻辑代码中加入线程挂起,或者直接KILL掉释放。

c#做的软件运行总自动关闭怎么回事
通常这种情况是因为程序中使用了多个线程,而这个线程是由主线程创建的,当某个线程运行过程中,出现了未处理的异常。这将导致程序从主线程跳出,如果系统没有正常对这个线程进行处理,就会导致进程自动关闭。可考虑在系统的入口程序代码中增加一下代码来得知出现了什么异常,这样就可以找到那些未处理的异常...

c#线程异常终止怎么解决。
用try catch扑捉下异常,如果出了异常就才catch中关掉或者重新开启线程.

C# 子线程快速终止的几个办法
首先关闭子线程。代码如下:问题:主程序关不掉,类似于死机状。版本3:改进一下,在程序启动时强制停止同名进程。在Program.cs的main方法中实现,代码如下:版本4:(终结版本)C#多线程编程时,Thread对象有个IsBackground属性,设置为true即可,在主线程关闭时,子线程随之关闭,速度很快。

相似回答