我在多个线程里面初始化创建了多个tTimer( 有100个 ),此时TTimer.enabled=true正常, 后来释放和重新创建了这些tTimer,然后调用TTimer.enabled=true,报如下错误,不知是什么原因:“ EOutOfResources with message 'Not enough timers available' ”。

解决方案 »

  1.   

    为什么会有这个限制,定时器有多少可用资源,我跟踪是SetTimer失败造成的。
      

  2.   

    我创建了48个线程,每个线程两个TTimer,控制定时调用一个线程方法,初次创建起来之后一切执行正常,我外部通过一个按钮,使得这48个线程进行了释放和重建,重建完成后,在线程execute里面调用tTimer.Enabled=true是会报以上错误。
      

  3.   

    我尝试用GetLastError获取错误,返回1400
    查了一下:〖1400〗-无效的窗口句柄
    可能是线程创建tTimer有错误,线程如何创建tTimer或窗体?
      

  4.   

    线程里最好少用公用变量,Timer 太多,如果有一个没有释放,就有可能会出错的。
      

  5.   

    看你说的应该是timer释放的地方有问题。
    如果第一次,没问题。
    第二次,有问题。
    应该是,释放的问题。