c# - 是否可以在 Visual Studio 调试器中命名线程?

标签 c# winforms visual-studio debugging ide

我正在使用 C# 4.0 (winforms) 调试具有 10 个以上线程的应用程序。调试时,有一个下拉菜单可供选择我应该调试哪个线程(只能在断点期间访问)。

这些显示为“Win32 线程”、“工作线程”、“RPC 回调线程”等...

我很乐意在我的代码中为它们命名。我正在通过后台工作人员运行我的所有线程。

编辑:我的解决方案。这可能不会在 100% 的时间都有效,但它确实可以满足需要。如果标签在某些情况下是错误的,那在我正在使用的上下文中是可以的。

在每个 backgroundworker 的 *_dowork 事件中,我放入以下代码行:

ReportData.TrySetCurrentThreadName(String.Format("{0}.{1}", MethodBase.GetCurrentMethod().DeclaringType, MethodBase.GetCurrentMethod().Name));

这是...

  public static void TrySetCurrentThreadName(String threadName)
  {
     if (System.Threading.Thread.CurrentThread.Name == null)
     {
        System.Threading.Thread.CurrentThread.Name = threadName;
     }
  }

最佳答案

那么你可以使用 Thread.Name属性,但您只能写入一次 - 所以当您创建线程时,给它一个合适的名称。

关于c# - 是否可以在 Visual Studio 调试器中命名线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7491383/

相关文章:

visual-studio - 大型项目的捐赠者,使用还是不使用?

c# - 转换数组 - 从 VBA 到 C#(最佳实践)

c# - 为什么这个 C# 函数的行为就像我在使用指针一样?

.net - 在 FontDialog 中显示颜色选项,没有下划线和删除线选项

wpf - 我可以在WinForms中使用WPF控件来实现透明效果吗?

c# - 如何在没有焦点的情况下检测 keybd_event

c# - 分开持有项目部分是一种好方式吗

asp.net - NuGet - 给定类型名称或 DLL,如何找到 NuGet 包?

c# - 打开 InputBox 时 Excel 无响应,c#

c# - 是否可以通过http将数据从客户端传输到服务器?