社区
C#
帖子详情
如果一个线程被Abort了,还能不能重新Start
realmagician
2010-05-25 02:50:14
RT
...全文
911
17
打赏
收藏
如果一个线程被Abort了,还能不能重新Start
RT
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
兔子-顾问
2010-05-27
打赏
举报
回复
不行,要重新new。
要记住线程的概念,什么是线程:运行的方法就叫线程。
dylike
2010-05-27
打赏
举报
回复
爱情破碎了,还能不能重头再来
纵横宇宙
2010-05-27
打赏
举报
回复
Thread.IsAlive 判断线程是否处于活动状态
realmagician
2010-05-25
打赏
举报
回复
[Quote=引用 13 楼 jsnjlhb 的回复:]
有没有判断结束成功了呢,如果还没成功就又开始肯定有问题的
[/Quote]
额。。。那要怎么判断结束成功了呢???
jsnjlhb
2010-05-25
打赏
举报
回复
有没有判断结束成功了呢,如果还没成功就又开始肯定有问题的
realmagician
2010-05-25
打赏
举报
回复
看看我写的代码。结束A线程后,再开始的话,弹出“线程正在运行或被终止;它无法重新启动”
private void a()
{
while (true)
{
if (formclosed == true)
break;
listBox1.Items.Add("A:");
}
}
private void Form1_Load(object sender, EventArgs e)
{
A = new Thread(new ThreadStart(this.a));
}
private void button1_Click(object sender, EventArgs e)
{
A.Start();
}
private void button2_Click(object sender, EventArgs e)
{
if (A.IsAlive)
A.Abort();
}
realmagician
2010-05-25
打赏
举报
回复
[Quote=引用 6 楼 deknight 的回复:]
只有当该线程是被其他的线程通过调用Thread.Interrupt()或者Thread.Abort()方法,才能被唤醒。如果对处于阻塞状态的线程调用Thread.Interrupt()方法将使线程状态改变,但是会抛出ThreadInterupptedException异常
[/Quote]
所谓的唤醒就是Thread.Start吧?
myhope88
2010-05-25
打赏
举报
回复
路过,帮顶下
z050301402
2010-05-25
打赏
举报
回复
嗯 对的
zhehan54
2010-05-25
打赏
举报
回复
deknight
正确的
支持。。
deknight
2010-05-25
打赏
举报
回复
[Quote=引用 5 楼 realmagician 的回复:]
引用 2 楼 zhehan54 的回复:
这个不一定的
你先看下MSDN 上对abort方法的介绍
调用此方法后
线程不一定或者根本不中止
如果成功中止
那就可以重新start 了
如果没中止掉就start 的话
提示异常:线程正在运行或被终止;它无法重新启动。
那如何判断是否成功终止了呢?
[/Quote]
if(th.IsAlive)
{
th.Abort();
}
deknight
2010-05-25
打赏
举报
回复
只有当该线程是被其他的线程通过调用Thread.Interrupt()或者Thread.Abort()方法,才能被唤醒。如果对处于阻塞状态的线程调用Thread.Interrupt()方法将使线程状态改变,但是会抛出ThreadInterupptedException异常
realmagician
2010-05-25
打赏
举报
回复
[Quote=引用 2 楼 zhehan54 的回复:]
这个不一定的
你先看下MSDN 上对abort方法的介绍
调用此方法后
线程不一定或者根本不中止
如果成功中止
那就可以重新start 了
如果没中止掉就start 的话
提示异常:线程正在运行或被终止;它无法重新启动。
[/Quote]
那如何判断是否成功终止了呢?
dataadapters
2010-05-25
打赏
举报
回复
不能,当调用Thread.Abort()后,即永久的终止了线程,当再调用Start()时,会引发ThreadStateException异常.
deknight
2010-05-25
打赏
举报
回复
ls说的对,我马虎了
zhehan54
2010-05-25
打赏
举报
回复
这个不一定的
你先看下MSDN 上对abort方法的介绍
调用此方法后
线程不一定或者根本不中止
如果成功中止
那就可以重新start 了
如果没中止掉就start 的话
提示异常:线程正在运行或被终止;它无法重新启动。
deknight
2010-05-25
打赏
举报
回复
不能 回复内容太短了!
C#多
线程
学习(二)如何操纵
一个
线程
.pdf
C#多
线程
学习(二)如何操纵
一个
线程
.pdf
c#
线程
和图形的结合
实现
一个
线程
结合图形按钮的例子, 方法S
tar
t():建立
线程
类对象后,
线程
并
不能
自动运行,用这个方法启动
线程
。方法IsAlive():判断
线程
对象是否存在,=true,存在。方法
Abort
():撤销
线程
对象。
不能
撤销
一个
已不存在的
线程
对象,因此在撤销
一个
线程
对象前,必须用方法IsAlive()判断
线程
对象是否存在。方法Sleep():参数为毫秒,
线程
暂时停止参数指定的时间,允许其它
线程
运行。方法Suspend():
线程
挂起。如只是暂时停止
线程
的运行,可用此函数将
线程
挂起。必须用Resume()方法唤醒
线程
。 方法Resume()
在C#中编写多
线程
应用程序
在C#中编写多
线程
应用程序,简单! 菜鸟必备
C#多
线程
之Thread中Thread.IsAlive属性用法分析
主要介绍了C#多
线程
之Thread中Thread.IsAlive属性用法,实例分析了C#判断
线程
可用状态的技巧,非常具有实用价值,需要的朋友可以参考下
C#多
线程
学习(二)
如何操纵
一个
线程
,
线程
的状态,
线程
优先级
C#
111,113
社区成员
642,553
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章