【问题标题】:ProcessThread Name进程线程名称
【发布时间】:2011-10-28 13:36:55
【问题描述】:

我正在开发一个 C# 应用程序,但遇到了一些线程问题。 我想知道我的应用程序中正在运行哪些线程。

我使用下面的代码:

foreach (ProcessThread s in Process.GetCurrentProcess().Threads)
{
  try
  {
    int l_iTest = 0;
    //(Thread) s.name
    //l_liTest += s.Id + ";"; <-- name of the ProcessThread ?
  }
  catch
  {
     // Some stuff
  }}

我的意思是,我想知道哪个类或组件启动了我的线程。

有人有想法吗?

【问题讨论】:

  • 你不能从一个 ProcessThread 回到一个线程。如果您需要了解有关启动线程的代码的任何信息,请传递一个参数。
  • @HansPassant:你确定没有办法从 ProcessThread.Id 到 Thread 对象吗?这也将解决他的问题和地雷。

标签: c# multithreading


【解决方案1】:

查看my answerthis question,看看是否有变体可以帮助您(即您的线程可以访问应用内已知线程的全局存储库)。

【讨论】:

  • 据我了解,该代码假设使用该类来启动一个想知道其名称的线程?那绝对不是解决方案,例如我正在使用后台工作人员RunWorkerAsync,我需要通过其名称找到该线程 ID。
  • @Hi-Angel 然后你应该打开一个包含这些细节的问题以获得适当的研究和答案。
  • 谢谢。已经 6 年了,这些天我不做 C#,所以我认为我不需要解决方案。但回想起来,评论显然是关于问题可能包括的用例,但答案并未涵盖。因此,一些知名人士可能会偶然发现此评论并在此处写下另一个答案,该答案将涵盖此类用例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
相关资源
最近更新 更多