假如程序中有个占用cpu时间很长的函数,当它运行的时候,主线程处于阻塞的状态,为什么鼠标还能响应呢,比如说显示沙漏形状。这跟TSCREEN类有关吗?
能否讲讲鼠标的工作机制和TSCREEN类的特点!

解决方案 »

  1.   

    for ,while循環內加一句
      Application.ProcessMessages;
    就能保證鼠标还能响应显示沙漏形状
      Screen.Cursor := crHourGlass;
      

  2.   

    对啊,TApplication 也是个TComponent啊
    可是Application对象不处在主线程中吗?
      

  3.   

    在函数执行时,鼠标的点击不会立刻响应,但操作系统会把点击的事件存在消息队列里,
    等主线程重新获得CPU时间时,就会得到操作系统缓存的消息.
      

  4.   

    硬件中断。鼠标中断请求级别高于ide硬盘,
    程序属于软中断,级别更低了。
    system timer IRQ最高。所以时钟快慢最不受影响。