我正在使用 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/