关于线程的问题:
1、一个线程的OnTerminate事件什么时候发生?有书上说,如果将FreeOnTerminate的属性设为True,当一个线程终止时,就会触发OnTerminate事件。这对吗???
2、一个线程的Execute执行完毕以后就会退出,如果我创建了一个线程类,然后Execute,当执行完以后是不是这个线程类也会自己Free呢?
3、有没有什么办法强行的终止一个线程。我知道TerminateThread(),有没有其他的办法呢?
4、线程的“退出”是什么概念?他和“Free”有什么区别呢?
5、我如何让OnTerminate里发生我要的事情呢?是在主线程里指定还是在线程类里指定?
1、一个线程的OnTerminate事件什么时候发生?有书上说,如果将FreeOnTerminate的属性设为True,当一个线程终止时,就会触发OnTerminate事件。这对吗???
2、一个线程的Execute执行完毕以后就会退出,如果我创建了一个线程类,然后Execute,当执行完以后是不是这个线程类也会自己Free呢?
3、有没有什么办法强行的终止一个线程。我知道TerminateThread(),有没有其他的办法呢?
4、线程的“退出”是什么概念?他和“Free”有什么区别呢?
5、我如何让OnTerminate里发生我要的事情呢?是在主线程里指定还是在线程类里指定?
解决方案 »
- 初次使用RO Datanap,在服务器端中增加方法,如何在客户端访问呢?
- 用ADO与excel连接成功后,把excel作为数据库用,怎么样知道这个数据库有哪些表名与多少个表名?
- 请教一个简单的sql语句的写法,在线等待!!!
- 怎样寻找或打开相对路径下的文件名?
- 我是一个Delphi迷, 但是才刚刚学习,不知道什么书对我这样的菜鸟合适请各位大侠们指点指点
- 各位大哥大姐学长学姐叔叔阿姨帮帮忙...........................
- 在服务器上我用C写好了一个程序,我想在DELPHI客户端发出某种动作能让服务器上的C程序带参数运行?
- 关闭窗口出现:Inialid pointer operation错误.!请帮我解决.!谢谢!
- 请问,我用三个DBComboBox代表图书的大分类、中分类、小分类,要怎样才能使大类改变时中类、小类也跟着改变?
- 请教拨号上网的API函数?
- 在线等 急急急!如何声明全局变量
- 关于报表纸张自定义大小问题,谢谢各位
2.FreeOnTerminate为True才会Free
3.Thread.terminated;结束
4.线程中止,但不一定Free;Free了一定中止
5.在主线程创建时指定
如:
with TBubbleSort.Create(BubbleSortBox, BubbleSortArray) do
OnTerminate := ThreadDone;
发生时机与FreeOnTerminate是否为True。
FreeOnTerminate为True时,在线程Terminate的时候自动释放
发生时机与FreeOnTerminate是否为True无关
FreeOnTerminate为True时,在线程Terminate的时候自动释放
还有就是,如果我的线程的Execute事件里没有检查terminated,那么主线程把一个子线程Thread.terminated,也会终止线程吗?
“终止”和“退出”上一个概念吗?
如果我的Execute方法里没有写FreeOnTerminate,在我Thread.terminated以后是不是我要手工的去Free掉这个线程呢?
线程退出时会执行这个函数,当你关掉主线程时,它会帮你清扫垃圾
如果要在主线程(主程序)中止线程,最好在线程中EXCETE中加一个判断if terminated then ...线程中若有循环就跳出循环体,或关闭线程打开的东东 ...