社区
Delphi
帖子详情
如何停止一个线程运行呢?
oicq111
2005-10-27 09:38:11
如何停止一个线程运行呢?很急!我调用线程是sjcl.Create(false);,如何停止呢?谢谢!
...全文
224
12
打赏
收藏
如何停止一个线程运行呢?
如何停止一个线程运行呢?很急!我调用线程是sjcl.Create(false);,如何停止呢?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lostmyway
2005-10-28
打赏
举报
回复
sjcl.Create(false) sjcl应该是一个 TThread类吧(习惯上类都会使用T前缀 如TMyThread)
终止运行是用terminate方法
但是terminate实际上是改了一个终止标志,即设置terminated为True,线程不一定立即停止运行了
所以通常在 线程的执行体 即execute方法中会增加 if not terminated then 判断, 这样的话,一旦调用teminate方法,就能最快的停止运行, 同时可能需要考虑数据丢失的问题(因为中断,未执行一些代码),可以在onTerminate中补充做些事情
最终 线程做什么,怎么做 还是很自由的 看你的需求啦,以上只是习惯上的做法
另外,对Win32的线程理解 你可以去学学用API做 因为VCL的TThread只是一个包装类 一件外衣,它的核心是一个叫ThreadProc的 Procdure(其中自然 是用Win32的API了)
ps: inst := sjcl.Create(false) 线程已经内调了 resume, 之前我说错了
oicq111
2005-10-27
打赏
举报
回复
不是拽啊,我是才学的,不知道所以急,又要急用,是不是缺少基本单位啊!sjcl.terminate 运行不了!
lostmyway
2005-10-27
打赏
举报
回复
61
lz拽的很
某些基本概念欠缺 仔细看看帮助去!
oicq111
2005-10-27
打赏
举报
回复
我的DELPHI怎么这样写都通过不了啊!
只有sjcl.Create(false);
qzxyd
2005-10-27
打赏
举报
回复
sjcl.terminate可销毁线程,但不安全。
sjcl是delphi的线程类的话,也可sjcl.free,这样会稍安全。
但还是要考虑到free前资源的释放的时差问题。
oicq111
2005-10-27
打赏
举报
回复
sjcl.terminate ,但运行通不过啊!
supercc
2005-10-27
打赏
举报
回复
sjcl.Suspend //这个是暂停线程的运行,此时线程运行在哪一句,就暂停在哪一句
sjcl.terminate //这个是销毁线程,执行后,此线程就不存在了
kfanffvga
2005-10-27
打赏
举报
回复
sjcl.Suspend
clasj
2005-10-27
打赏
举报
回复
sjcl.terminate
oicq111
2005-10-27
打赏
举报
回复
什么乱七八糟,能详细一点吗?我调用线程是sjcl.Create(false);,如何停止呢?谢谢!
lostmyway
2005-10-27
打赏
举报
回复
线程终止可以用 inst.terminate;
lostmyway
2005-10-27
打赏
举报
回复
inst := sjcl.Create(false)
if sjcl is TThreadClass then
//>>如果没有调用 inst.resume,只是这样创建了线程对象,那你的线程都没有启动
线程启动可以用 inst.terminate;
如何
停止
一个
正在
运行
的
线程
?
虽然它确实可以
停止
一个
正在
运行
的
线程
,但是这个方法是不安全的,而且是已被废弃的方法。 在java中有以下3种方法可以终止正在
运行
的
线程
:· 使用退出标志,使
线程
正常退出,也就是当run方法完成后
线程
终止· 使用...
如何
停止
一个
线程
?
停止
一个
线程
可以使用Thread.stop()方法,但不推荐使用此方法,虽然它确实可以
停止
一个
正在
运行
的
线程
,但是这个方法是不安全的,而且是被弃用作废的。大多数情况下,
停止
一个
线程
使用Thread.interrupt()方法,但这...
运行
中的
线程
如何
停止
?
虽然它确实可以
停止
一个
正在
运行
的
线程
,但是这个方法是不安全的,而且是已被废弃的方法。在java中有以下3种方法可以终止正在
运行
的
线程
: 1、使用退出标志,使
线程
正常退出,也就是当run方法完成后
线程
终止。 2、...
36. 说说 如何
停止
一个
正在
运行
的
线程
?
说说 如何
停止
一个
正在
运行
的
线程
?
如何
停止
一个
线程
?
1 如何
停止
一个
线程
? 不能简单的
停止
(Stop())
一个
线程
。因为
停止
stop()会直接把
线程
停止
,这样就没有给
线程
足够的时间来处理想要在
停止
前保存数据的逻辑,任务戛然而止,会导致出现数据完整性等问题; 虽然
线程
不...
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章