C# 如何获得分配给线程的任务

C# 如何获得分配给线程的任务,c#,.net,multithreading,task,threadpool,C#,.net,Multithreading,Task,Threadpool,当任务在c#中运行时,我如何获取任务的指定线程? 我想得到调试任务的线程。 我试图修改任务类,但Microsoft没有修改它就解决了这个问题。获得任何给定方法的托管线程id的方法相同。简单地说: Thread.CurrentThread.ManagedThreadId; 与其他答案一起,如果您使用的是VS,请为任务和线程添加一个名称。这确实很有帮助,并显示在VS调试器中。调试->窗口->线程,然后所有正在运行的线程都会显示在那里。与本地人一样,您可以在线程上添加手表以及其他许多东西。您想做什么

当任务在c#中运行时,我如何获取任务的指定线程? 我想得到调试任务的线程。
我试图修改任务类,但Microsoft没有修改它就解决了这个问题。

获得任何给定方法的托管线程id的方法相同。简单地说:

Thread.CurrentThread.ManagedThreadId;

与其他答案一起,如果您使用的是VS,请为任务和线程添加一个名称。这确实很有帮助,并显示在VS调试器中。调试->窗口->线程,然后所有正在运行的线程都会显示在那里。与本地人一样,您可以在线程上添加手表以及其他许多东西。

您想做什么?任务可以使用线程池中的任何线程执行。一旦任务终止,线程返回到池中,线程ID在它之外将是无用的。您不应该关心线程是什么,也不应该尝试为另一个任务找到相同的线程,而是使用线程本地存储etc@PanagiotisKanavos线程不一定属于线程池,它可以是由
线程
类:)创建的线程。@YuvalItzchakov或UI线程,具体取决于您使用的TaskScheduler。但我认为这与问题无关。任务使用哪个线程并不重要。如果是这样的话,就会有可疑的事情发生,比如使用线程本地存储或修改来自不同服务器的不安全对象tasks@PanagiotisKanavos我明白你的意思。OP应该澄清一下。