2015-06-23 61 views
0

如何获得一个任务的分配线程,当它在c#中运行? 我想获得调试任务的线程。 我尝试修改任务类,但微软没有它解决它。我怎样才能得到一个任务分配线程

+0

你想做什么?任务可以使用线程池中的任何线程执行。线程ID在外部无用,即一旦任务终止并且线程返回池。你不应该在意线程是什么,也不要试图为另一个任务找到相同的线程,使用线程本地存储等。 –

+0

@PanagiotisKanavos一个线程不一定属于线程池,它可以是一个线程创建的线程'线程类:)。 –

+0

@YuvalItzchakov或UI线程,具体取决于您使用的TaskScheduler。不过,我认为这是不言而喻的。它不应该由任务使用哪个线程。如果确实如此,就会发生一些腥意,例如使用线程本地存储或修改不同任务中的不安全对象 –

回答

1

同样的方式,您可以获得任何给定方法的托管线程ID。简单地说:

Thread.CurrentThread.ManagedThreadId; 
1

与其他答案一起,如果您使用VS,则向任务和线程添加一个名称。这真的有帮助,并在VS调试器中显示出来。调试 - > Windows - >线程,然后所有正在运行的线程将显示在那里。和当地人一样,您可以在线上添加手表以及其他许多功能。