最近刚写了个多线程,用一个Timer重复创建两个线程,并且每个线程有大量运算,在halfdream(哈欠)和zhang21cnboy(沧桑男人)指导下,断定Timer的重复创建应该没有问题,创建时用如下语句:
    Thread1.create(false);
    Thread2.create(false);
但发现如下情况:当两个线程都创建玩了,Thread1所得到的CPU时间明显数倍于Thread2,不知什么原因,不知是不是线程优先级的问题。我尝试在创建线程后把两个线程的Priority属性打印出来比较(用showmessage显示,已转换成string),但不成功,请各位高手指教,谢谢。

解决方案 »

  1.   

    可以用getpriorityclss()和setpriorityclass()来动态获取或设置一个进程的优先级
    TThread中声明了一个每举类型TThreadPriority 
    type
    TThteadpriority=(tpidle,tplowest,tplower,tpnormal,tphigher,tphighest,tptimecritical);定义优先级:
    mythread.priority:=tphighest;
      

  2.   

    我知道你贴的那段话是从开发者指南里贴下来的,你看看getpriorityclss(),setpriorityclass()是用来获得进程的优先级的,但我需要的是线程的优先级,我就是把mythread.priority赋给字符串,再showmessage()出来,但是不行。