这个问题一直困扰了我好久,始终没有想通解决办法,这个问题也不好精确的描述,我就打个比较形像的比喻
我想用自己指定的事件,而事件来自特定的消息,这个消息有点特别比如我想在我的程序中有这样一种事件,即:当D:\111.TXT这个文件存在时触发 显然系统里没有这个消息,要自己定义这种消息不难,但是我想要这种消息的实时性,只要这个文件存在马上参生此消息,我想到的解决办法有两个1.就是在每个创建这个文件的程序里实现消息发送,这样可以实时收到消息,但现实是行不通的,能够WINDOWS上能够创建文件程序N多,2种方法就是启用一个线程用一个循环不断的检测这个文件,如果检测到了发送一条消息,可是这做当检测不到的时候这个循环是不能停的,这就要牺牲大量的CPU资源,这不是我想看到的结果,像类似的消息怎么产生呢
如果你还看懂我还打个比方 看懂了就不必了
比如在网络通信中程序中,比如NMUDP组件 如果远程主机向我发来数据,就会产生一个事件,这个事件是如何产生的很值得研究,他的好处能使接收时是最实时的,假如没有这个事件我没就要写一个循环不断的检测端口有没有新数据到来,这又是CPU资源浪费,我想那想的事件也许用了硬件中断才能实现,好我现在用一句话来总结我的问题
在WINDOWS编程中能否用实现自己想要的任何事件而不用循环检测那样倒霉的办法 是不是需要修改WINDOWS内部那个消息产生和发送机制
我想用自己指定的事件,而事件来自特定的消息,这个消息有点特别比如我想在我的程序中有这样一种事件,即:当D:\111.TXT这个文件存在时触发 显然系统里没有这个消息,要自己定义这种消息不难,但是我想要这种消息的实时性,只要这个文件存在马上参生此消息,我想到的解决办法有两个1.就是在每个创建这个文件的程序里实现消息发送,这样可以实时收到消息,但现实是行不通的,能够WINDOWS上能够创建文件程序N多,2种方法就是启用一个线程用一个循环不断的检测这个文件,如果检测到了发送一条消息,可是这做当检测不到的时候这个循环是不能停的,这就要牺牲大量的CPU资源,这不是我想看到的结果,像类似的消息怎么产生呢
如果你还看懂我还打个比方 看懂了就不必了
比如在网络通信中程序中,比如NMUDP组件 如果远程主机向我发来数据,就会产生一个事件,这个事件是如何产生的很值得研究,他的好处能使接收时是最实时的,假如没有这个事件我没就要写一个循环不断的检测端口有没有新数据到来,这又是CPU资源浪费,我想那想的事件也许用了硬件中断才能实现,好我现在用一句话来总结我的问题
在WINDOWS编程中能否用实现自己想要的任何事件而不用循环检测那样倒霉的办法 是不是需要修改WINDOWS内部那个消息产生和发送机制
解决方案 »
- 急!!!错误提示:Table does not suppert this operation because it is not uniquely indexed
- delphi 除去后缀名
- 关于在dll下调用函数的问题?
- 求助!!请问有人使用过delphi的batchmove控件吗!小弟有一问请教了!!
- 用winexec调用exe问题
- PrintDBGridEh的问题,请高手指点!!!好有没来了,顺便散分!!!
- 怎样将VclSkin组件对SaveDialog没有效果呢?
- 在delphi里如何往注册表里创建字符串值
- 变量怎么声明
- 为什么用form winzard 做的窗口在程序一启动就打开,虽然...
- 真 他 妈 的 冷啊!大家进来说说御寒的方法吧
- 关于DbGrid的问题
务必把代码给俺一份,俺也好好学习学习
2. 参考 http://www.7880.com/Info/Article-f548f80.html