Thread Pool and .IsBackground in .NET

前端 未结 3 1905
慢半拍i
慢半拍i 2021-01-18 03:27

MSDN, as well as many other sources, claim that worker threads in the thread pool are always background.

"Thread pool threads are background threads

相关标签:
3条回答
  • 2021-01-18 04:02

    Yes, you can change them. But you should not.

    For the same reasons you don't repaint a borrowed car. Same for other thread properties like priority and MTA.

    If you want a different kind of thread, create your own.

    0 讨论(0)
  • 2021-01-18 04:10

    Thread pool threads are background threads

    Finish that sentence with "they have their IsBackground property initialized to True, unlike threads created with the Thread class."

    Setting it to false could be a bit risky. Threadpool threads are recycled, I'm not so sure that the property will be re-initialized. It is not a property associated with the physical operating system thread, they don't have IsBackground behavior, it is added by the wrapper that the CLR puts around it. So probably yes. Little reason to mess with it though.

    0 讨论(0)
  • 2021-01-18 04:22

    When does the thread finish? When your method ends? I highly doubt that's the case. The whole point of the thread pool is that once your thread is finished, it gets put back in the pool to be reused. Now you've let go of a thread, it's gone back into the thread pool and your application is still running because it's a foreground thread. There's no way to get that thread back out to kill it.

    0 讨论(0)
提交回复
热议问题