It really depends on a few different factors.
Giving up control
Do you require tight timing?
Dealing with preemption
Giving Up Control
In non preemptive systems the programmer must yield the CPU to allow other things to happen. This isn't a big deal but it is something that you need to think about. Often times you will have to explicitly yield or use a ...