|manually create thread pool is better||0.58||0.8||8273||88|
The thread pool has a maximum number of threads, so a large number of blocked thread pool threads might prevent tasks from starting. You need to place threads into a single-threaded apartment. All ThreadPool threads are in the multithreaded apartment. You need to have a stable identity associated with the thread, or to dedicate a thread to a task.How to increase the number of idle threads in a thread pool?
You can use the ThreadPool.SetMinThreads method to increase the minimum number of idle threads. However, unnecessarily increasing these values can cause performance problems. If too many tasks start at the same time, all of them might appear to be slow. In most cases the thread pool will perform better with its own algorithm for allocating threads.What is the use of newfixedthreadpool?
Method Description newFixedThreadPool (int) Creates a fixed size thread pool. newCachedThreadPool () Creates a thread pool that creates new threads as needed, but will reuse previously constructed threads when they are available newSingleThreadExecutor () Creates a single thread.When should I not use a thread pool?
The thread pool is optimised for small units of work and you can interfere with other work by holding onto a thread pool thread. My rule of thumb is if an operation can take more than a second, it should not be on a thread pool thread. That is probably quite long.