Do that mean I need convert my program to TThread ?
No. mtprocs uses tthread in the background. Basically it adds the pooling to it in an effort to optimise multi-cpu/core systems.
The last wiki page I referred to is dealing with mtprocs and explains how to use 'synchronize' which is a method of TThread.
Important is that the threads leave some time to the main thread to handle messages.Since yçu are not doing any IO (disk,network,..) in the thread you'll need to add from time to time fe. a call to Application.Processmessages in a method called through synchronize.