线程的问题(200分)

  • 主题发起人 主题发起人 黑暗之光
  • 开始时间 开始时间

黑暗之光

Unregistered / Unconfirmed
GUEST, unregistred user!
斑竹,我刚用delphi不久,有个问题想问一下,MDI类型的子窗口无法直接关闭,要怎么办?另外,在线程中调用主程序中的全局变量(不是参数),是否是值调用,在主程序中无法得到在线程中改变的值,是不是这样?如果不是,要怎么做?
 
在主程序中无法得到在线程中改变的值
可以得到
 
我在主程序设置了一个全局变量,然后增加了一个定时器,每隔一秒刷新一次变量的显示,
然后在线程中不断的循环给这个变量复值,但主窗口显示不变。只有在我将该变量设为线程
的引用型变量时,主窗口才不断变化显示。
 
MDI子窗口,在OnClose事件中写:Action := caFree;
直接使用变量,当然是直接改变了变量的值。
难道变量你是通过参数传递的?如果不是,引用型变量是什么意思?
 
主程序的全局变量的值当然可以在线程中改变
 
你用sy*()什么的同步一下就可以了嘛.
 
我终于找到原因了,原来我的线程没有重载create方法,等于没有启动线程(有参数的重载了)
但是不知用线程如何进行数据采集(有固定采样周期,如5秒)控制,在线程中如何保证采样周
期,还是用定时器每5秒调用一次,有知道的,请讲的详细一点?
 
sleep(5)不能周期保证采样
 
关闭用action:=cafree;线程中可以调用主程序中的全局变量,而dll中可以使用dll
内部的全局变量。
 
多人接受答案了。
 
后退
顶部