The Java� Programming Language (3rd Ed.) has this to say:
A thread's priority is initially the same as the priority of the thread that created it. The priority can be changed using setPriority with a value between Thread's constants MIN_PRIORITY and MAX_PRIORITY. The standard priority for the default thread is NORM_PRIORITY. The priority of a running thread can be changed at any time. If you assign a thread a priority lower than its current one, the system may let another thread run, because the original thread may no longer be among those with the highest priority. The getPriority method returns the priority of a thread.
Note: Do *not* - I repeat do *not* - rely on the behavior of the thread scheduler.
Hope this helps...
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com