怎么杀死一个线程?

dangdang2471 2009-09-18 11:50:39
RT
没有找到Abort方法,不知道怎么终止一个正在运行的现成。

环境是: .net compact framework 1.0 sp3
...全文
342 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dangdang2471 的回复:]
现在的情况是,该线程调用的方法有一定几率会导致无限等待下去。
因此要在主线程内杀掉该子线程。
[/Quote]

几乎99%的时候,对于真正的产品研发,搞明白为什么会无限等待更重要。

往往,这是开发人员在编写异步操作程序时满脑子同步处理的逻辑控制方式,从而蹩脚地写出了“循环、阻塞”的垃圾代码所致。你清楚地举出无限等待的程序例子,就能看到这种问题。
快40的码农 2009-09-18
  • 打赏
  • 举报
回复
Process pss = Process.GetCurrentProcess();
Process[] myProcesses = Process.GetProcessesByName(pss.ProcessName);

if (myProcesses.Length >= 2)
pss.Kill();
wuyq11 2009-09-18
  • 打赏
  • 举报
回复
使用了一个布尔型标志和一个 while 循环来停止工作线程
应该有Thread.Abort();
dangdang2471 2009-09-18
  • 打赏
  • 举报
回复
现在的情况是,该线程调用的方法有一定几率会导致无限等待下去。
因此要在主线程内杀掉该子线程。
  • 打赏
  • 举报
回复
不用杀,它自己执行完了会自杀。

除非你在线程的设计中使用了不太该使用的无限循环的逻辑。
yyhlian 2009-09-18
  • 打赏
  • 举报
回复
太狠了。
CsToD 2009-09-18
  • 打赏
  • 举报
回复
没有Abort方法?不是吧?
没用过 .net compact framework
LutzMark 2009-09-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lt66_88 的回复:]
类似这个:
Process pss = Process.GetCurrentProcess();
Process[] myProcesses = Process.GetProcessesByName(pss.ProcessName);
foreach(Process p in imyProcesses)
{
  p.kill();
}

[/Quote]
这个对进程的Kill
线程自己结束生命,Abort不能保证他结束生命而且可能产生异常
7#说的正确
listhome 2009-09-18
  • 打赏
  • 举报
回复
楼上有些人线程和进程都没搞明白.还这个正确那个正确的
dangdang2471 2009-09-18
  • 打赏
  • 举报
回复
.net compact framework 1.0 没有这个方法:Process.GetCurrentProcess();

难道1.0 没法终止线程了吗?不可能吧
春天的气息 2009-09-18
  • 打赏
  • 举报
回复
楼上的都说了,呵呵
冷叶飘零 2009-09-18
  • 打赏
  • 举报
回复
类似这个:
Process pss = Process.GetCurrentProcess();
Process[] myProcesses = Process.GetProcessesByName(pss.ProcessName);
foreach(Process p in imyProcesses)
{
p.kill();
}
dangdang2471 2009-09-18
  • 打赏
  • 举报
回复
.net compact framework 1.0 没有这个方法:Process.GetCurrentProcess();

有没有API可以做到的?
software820830 2009-09-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 superman_ 的回复:]
Process pss = Process.GetCurrentProcess();
                Process[] myProcesses = Process.GetProcessesByName(pss.ProcessName);

                if (myProcesses.Length >= 2)
                    pss.Kill();
[/Quote]这个正确

110,533

社区成员

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

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

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