如何跟踪线程/线程上下文?
本文关键字:线程 上下文 跟踪 何跟踪 | 更新日期: 2023-09-27 18:06:31
我有一个服务应用程序,我希望每个条目/分派都与某种上下文相关联。我注意到,虽然有时当新的线程被"创建",系统似乎只是重用一个现有的线程。
当我创建一个新的线程/任务是有一些独特的信息,我可以得到这意味着我是否在线程a或线程B(即使CLR选择使用相同的线程)?
当你创建一个新线程时,它总是会创建一个新线程。
当你使用线程池线程时,你故意不创建一个新线程,而是从一个线程池中重用一个线程。
当您使用Task
时,默认情况下,它将使用线程池线程,除非提供了LongRunning
任务创建/延续选项。
你可以使用Thread.CurrentThread.ManagedThreadId
来获得当前线程的ID,但除了调试/开发目的,你可能不应该依赖它。
一般来说,对于代码来说,创建一个新线程或重用一个线程应该无关紧要。如果这很重要,这是一个信号,表明你的代码有问题,你应该仔细看看你所依赖的是什么,以及为什么。