谢谢
9 个解决方案
#1
做个线程时不时去读取一下这个文件吧。不过你要注意,在另外一个程序在写文件的时候不要用这个文件进行写操作
#2
钩住写文件的那个API应该也可以
#3
要怎么钩呢? 对钩子不是太懂
#4
TConfigFileMonitor = class(TThread)
private
h: THandle;
FileName: string;
FileInfo: WIN32_FILE_ATTRIBUTE_DATA;
errorMsg: string;
Notify: TConfigChangeEvent;
FFinshed: boolean;
public
procedure Execute;override;
constructor Create(const fName: string; const NotifyMe: TConfigChangeEvent);
destructor Destroy;override;
end;
线程的execute中使用
FindFirstChangeNotification来轮询
#5
楼上的这个方法会耗资源吗? 这个线程是一直跟循环一样一直在运行吗? 因为生产环境的电脑配置是非常非常差的, 要是太耗资源的会拖不起的
#6
要么判断ini是否被修改~~如果修改被修改,就读取数据做对比~~
#7
是不是思路有问题啊,是程序本身修改的ini吗?如果是的话就判断值是否修改,如果不是程序本身修改的ini的话,那也只能耗费资源了啊~~~
#8
用个定时器不行吗?
好像不对资源的耗费很小的。
就是读一下值,这么小一个事情,好像放一个线程里,一直运行着,不太好吧。反而乱费系统资源了。
好像不对资源的耗费很小的。
就是读一下值,这么小一个事情,好像放一个线程里,一直运行着,不太好吧。反而乱费系统资源了。
#9
绝对是你的编程思路出了问题.不应该这么做.
#1
做个线程时不时去读取一下这个文件吧。不过你要注意,在另外一个程序在写文件的时候不要用这个文件进行写操作
#2
钩住写文件的那个API应该也可以
#3
要怎么钩呢? 对钩子不是太懂
#4
TConfigFileMonitor = class(TThread)
private
h: THandle;
FileName: string;
FileInfo: WIN32_FILE_ATTRIBUTE_DATA;
errorMsg: string;
Notify: TConfigChangeEvent;
FFinshed: boolean;
public
procedure Execute;override;
constructor Create(const fName: string; const NotifyMe: TConfigChangeEvent);
destructor Destroy;override;
end;
线程的execute中使用
FindFirstChangeNotification来轮询
#5
楼上的这个方法会耗资源吗? 这个线程是一直跟循环一样一直在运行吗? 因为生产环境的电脑配置是非常非常差的, 要是太耗资源的会拖不起的
#6
要么判断ini是否被修改~~如果修改被修改,就读取数据做对比~~
#7
是不是思路有问题啊,是程序本身修改的ini吗?如果是的话就判断值是否修改,如果不是程序本身修改的ini的话,那也只能耗费资源了啊~~~
#8
用个定时器不行吗?
好像不对资源的耗费很小的。
就是读一下值,这么小一个事情,好像放一个线程里,一直运行着,不太好吧。反而乱费系统资源了。
好像不对资源的耗费很小的。
就是读一下值,这么小一个事情,好像放一个线程里,一直运行着,不太好吧。反而乱费系统资源了。
#9
绝对是你的编程思路出了问题.不应该这么做.