C#的Thread关闭问题

有时想起 2014-11-24 02:14:42
线程Thread t 设为全局的,那么关闭时 t.abort();就行了 ,那如果是一个局部变量,如何在其他方法中关闭这个线程呢。
...全文
3107 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2017-03-05
  • 打赏
  • 举报
回复
引用 2 楼 Z65443344 的回复:
能不用abort()最好不用 可以在循环里加个全局变量,判断为true,就执行break跳出循环 如果是动态添加的很多线程,可以使用全局List<bool>
那如果这个线程是阻塞的,没办法循环检查标志位怎么办?
CrazyCode1981 2014-11-24
  • 打赏
  • 举报
回复
2楼的方法最好 不行就用个全局的bool来控制线程的执行...这样在哪儿都可以控制了
引用 2 楼 Z65443344 的回复:
能不用abort()最好不用 可以在循环里加个全局变量,判断为true,就执行break跳出循环 如果是动态添加的很多线程,可以使用全局List<bool>
江南小鱼 2014-11-24
  • 打赏
  • 举报
回复
引用 5 楼 u011672494 的回复:
[quote=引用 4 楼 u012804018 的回复:] 线程在执行完当前任务后会自动关闭....
然后我什么都不用做了 哈哈[/quote] 用不着调用Abort! 1、如果线程调用非托管代码,且非托管代码执行未返回,即使你调用Abort,线程也不会终止(msdn说调用Abort通常会终止线程) 2、线程会在代码运行结束后终止,资源由垃圾回收器回收释放。Abort多用于其他线程用来控制此线程在运行到它的代码中的某一个位置时强制终止。
有时想起 2014-11-24
  • 打赏
  • 举报
回复
引用 4 楼 u012804018 的回复:
线程在执行完当前任务后会自动关闭....
然后我什么都不用做了 哈哈
鏡椛氹鈅 2014-11-24
  • 打赏
  • 举报
回复
线程在执行完当前任务后会自动关闭....
Summer__Yan 2014-11-24
  • 打赏
  • 举报
回复
我的思路是:在线程执行体里,添加一个全局标志位,如果想让线程结束,改变这个标志位的值,你的线程执行的方法里检测这个指标位,如果发现改变,就return结束这个方法,从而这个线程也结束了!
於黾 2014-11-24
  • 打赏
  • 举报
回复
能不用abort()最好不用 可以在循环里加个全局变量,判断为true,就执行break跳出循环 如果是动态添加的很多线程,可以使用全局List<bool>
l2999019 2014-11-24
  • 打赏
  • 举报
回复
你可以把这个线程作为参数传过去

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧