Process - Thread - Task Nightmare
I found out one more thing today - a process, task and thread can all have different priorities all independent of each other. For a task, you cannot legitimately change its priority without causing issues and it is not recommended, for a thread, you want to reduce priority to prevent it from locking to and holding 100% CPU doing some work. However, the caveat with using threads is that it runs at a lower security context from a thread pool thread a.k.a task - hence, either change its security context internally OR us a task instead in such cases. Yes, even if the process itself runs as a user which has access (to say the IIS), the thread spinned out from it, may not be able to read IIS - we have an issue where the first time the service starts up, it does not have access, although the second time, after we restart it, it does have access. Weird.