如何跟踪线程/线程上下文?

本文关键字:线程 上下文 跟踪 何跟踪 | 更新日期: 2023-09-27 18:06:31

我有一个服务应用程序,我希望每个条目/分派都与某种上下文相关联。我注意到,虽然有时当新的线程被"创建",系统似乎只是重用一个现有的线程。

当我创建一个新的线程/任务是有一些独特的信息,我可以得到这意味着我是否在线程a或线程B(即使CLR选择使用相同的线程)?

如何跟踪线程/线程上下文?

当你创建一个新线程时,它总是会创建一个新线程。

当你使用线程池线程时,你故意不创建一个新线程,而是从一个线程池中重用一个线程。

当您使用Task时,默认情况下,它将使用线程池线程,除非提供了LongRunning任务创建/延续选项。

你可以使用Thread.CurrentThread.ManagedThreadId来获得当前线程的ID,但除了调试/开发目的,你可能不应该依赖它。

一般来说,对于代码来说,创建一个新线程或重用一个线程应该无关紧要。如果这很重要,这是一个信号,表明你的代码有问题,你应该仔细看看你所依赖的是什么,以及为什么。