What is the best way to keep the cpu usage of an TThread descendant class low?

I used an sleep(50) to get from 80% cpu usage to 8% cpu usage.

But i am afraid sleep is dependend on the speed of the cpu. So depending of the cpu speed the value of 50 should be higer or lower?

Are there other better ways to do this?

I also thought of using application.processmessages but that one is not available form within my TThread based class.

Thanks for your answers in advance.