线程可不可以理解为
线程+延迟+自定义消息=时钟?
同样的程序 放在时钟里面执行要比在线程下执行要稳定一些。是不是因为时钟有消息机制可以使得系统方便处理?Delphi线程时钟

解决方案 »

  1.   

    Ttimer?那是消息机制,可靠性、准确性会差很多
    但是事件响应代码无须考虑线程代码的很多限制
      

  2.   

    我遇到的问题是这样的
    进程A读写自身的内存数据
    DLL B被注入到进程A之中 读写A的数据
    因为DLL也要读写这样会造成资源的冲突
    如果采用时钟 因为某种机制 具体的我也不是很清楚 A进程不会出现什么问题
    但是采用线程的话 如果处理不好就 导致进程A的关闭
    但是因为性能的要求 必须要采用线程处理
    所以 就想知道线程和时钟的区别
      

  3.   


    如果线程只是用来sleep然后发出一个消息
    总的效果应该没区别资源的竞争、冲突还是会存在,这个要通过计数、互斥来解决
      

  4.   


    如果线程只是用来sleep然后发出一个消息
    总的效果应该没区别资源的竞争、冲突还是会存在,这个要通过计数、互斥来解决现在我构建的模型是这样的
    首先 把读写数据这个部分放在一个DLL按钮事件里面,然后把这个按钮变成 大小 0 0是可用的 但是看不到
    然后我在线程里面调用这个按钮事件
    相当于新开的线程 调用主线程的消息资源 这样的话  效率降低很多 但是不知道跟时钟比较效率怎样?
    还有如果这样做  能解决冲突么?
    相当于 DLL B被注入到A进程 DLL B创建 线程C 线程D
    线程C 部分代码 调用 DLL B 界面中的 按钮F 线程D部分代码调用DLL B 界面中的按钮F (按钮F封装了对进程A内存的读写操作)
    这样的效率 肯定不能跟 DLL B 直接创建 线程C 和线程D 直接对进程A内存的读写操作比,对吧?
    我就想问 这样可不可以 避免 进程A的内存读写操作 和线程C 和线程D的内存读写操作?
      

  5.   

    测试发现 注入的DLL的线程 一旦与A进程冲突  还是会挂掉 这样我就看不明白了
      

  6.   

    Ttimer是消息队列中优先级最低的
      

  7.   

    问题太多了
    开两个A进程  直接导致了 干扰 第一个A进程,B的 线程全部死掉。
    第二个运行没多久也全部死掉。。
      

  8.   

     MyCs:TRTLCriticalSection;InitializeCriticalSection(MyCs);
    EnterCriticalSection(MyCs); //进入临界区    try
       finally
          LeaveCriticalSection(MyCs); //离开临界区
        end;DeleteCriticalSection(MyCs);
    用临界区之后不出现之前的问题了 但是速度慢的要死。。
      

  9.   

    《windows核心编程》里有你需要的全部的权威答案,具体看4~10章