请教多线程使用的几个问题(100分)

  • 主题发起人 主题发起人 xxhadsg
  • 开始时间 开始时间
X

xxhadsg

Unregistered / Unconfirmed
GUEST, unregistred user!
刚刚用到多线程的开发,向高手请教几个问题:
1.我创建了一个多线程对象,在create中用到了freeonterminate:=true,那么我在创建了一个实例后是不是就不用free了?如果没有用freeonterminate:=true是不是该调用free?
2.我想在线程内访问主进程(主窗口中)的一个方法,该方法调用了socket连接对象,在运行时总是报错,好像是访问错误,在线程中该如何调用?
 
平时都放在excute中,
用在Create中,Create起到实例的初始化作用,那时线程还没有执行呢!
2。用同步了没
 
1 yes
2 Synchronize
 
用Synchronize 方法,你最好把源码贴出来让大家看看~~~~~~~~~
 
线程创建时默认的就是FreeOnTerminate为True,
如果要自己释放就要加FreeOnTerminate := False.
 
1、如果将FreeOnTerminate为True,线程在执行完Execute的所有语句时(也就是从Execute退出时)回自己释放自己。
2、如果报访问错误,最有可能的是你访问对象的指针不对了,比如
MySocket.SendBuf(aaa);
如果MySocket已经释放或还没有创建就会出现访问错误为,所以你要仔细检查一下指针是否正确,比如改成:
if Assigned(MySocket) then
MySocket.Sendbuf(aaa)
else
// 错误处理
 
多人接受答案了。
 
后退
顶部