如何使用Name属性枚举.NET中的线程?

Pet*_*eri 14 c# multithreading

假设我开始这样的两个线程:

// Start first thread
Thread loaderThread1 = new Thread(loader.Load);
loaderThread1.Name = "Rope";
loaderThread1.Start();

// Start second thread
Thread loaderThread2 = new Thread(loader.Load);
loaderThread2.Name = "String";
loaderThread2.Start();
Run Code Online (Sandbox Code Playgroud)

有什么办法可以通过使用Name属性来枚举线程吗?

我希望能够检查具有特定名称的线程是否仍在运行.

我创建的每个线程都使用一组命名数据,数据集的名称用作处理数据的线程的名称.在启动工作线程之前,我想查看同一组数据的任何先前线程是否已在运行.

我使用的线程System.Diagnostics.GetCurrentProcess().Threads是类型的ProcessThread,而不是Thread!

Mar*_*ell 4

我怀疑你可能必须将线程放入 a 中才能Dictionary<string,Thread>使其工作 - 但你为什么想要它呢?线程之间通常还有其他通信方式(任何锁定/等待对象)。

要在进程级别工作(即不考虑对象Thread),请参阅此处- 您可以将其限制为当前进程,但您将无法与线程交互。