Delphi 6 的 Synchronize 会死,怎么办?(100分)

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

xulang77

Unregistered / Unconfirmed
GUEST, unregistred user!
当我把 Delphi 5 下的多线程代码用 Delphi 6 编译后,在线程中调用 Synchronize 后
程序就不动了。
然后我运行 Delphi 6 的多线程例子,在 Delphi6/Help/Prgrsbar 中,有同样的问题。
而且这个例子用 Delphi 5 编译则能正确运行。
怎样解决这个问题? 请高手指教。
 
安装补丁第二版
 
我没有可以使用的 login,怎样可以下载 Delphi 6 补丁第二版。
除了从 Borland 的网站外, 其它地方可以下载吗?
 
我终于找到了直接下载 Delphi 6 update pack 2 的地方,安装后 Delphi 6 的例子
Delphi6/Help/Examples/Prgrsbar 果然正确运行了,但我的程序仍然会死。
我跟踪了 TThread.Synchronize 过程,发现当执行 WaitForSingleObject(SyncProc.Signal, INFINITE)
时死的。但奇怪的是如果我弹出一个模式对话框,线程就开始动了,关闭对话框,
又不动了,请高手指教。
我的程序是一个 Automation Server,与 Client 在同一个线程中,Dll 形式。
可以加分,我还有100分!
 
我曾经遇到过一个同样的问题。再Windows NT 4.0 sevice pack 5 下多线程程序正常。
然而,在windows2000下,会死。注意仅仅判断waitForSingleObject无法确定程序死的原因
,你是不是在一个公共的时间处理过程中调用了Synchronize.
 
后退
顶部