【发布时间】:2022-01-23 02:13:06
【问题描述】:
什么叫“线程 0x2ef0”,如何在命令提示符中显示它?我尝试执行代码,它只显示在输出框中或调试器代码中,有没有可能打印这个十六进制十进制线程代码的方法?到命令提示符?我正在使用具有 Windows 属性的 Windows 应用程序,但是当我在具有控制台属性的 Windows 应用程序中尝试时,“线程 0x2ef0”没有显示出来,所以我想在命令提示符下显示它。
【问题讨论】:
标签: c#
什么叫“线程 0x2ef0”,如何在命令提示符中显示它?我尝试执行代码,它只显示在输出框中或调试器代码中,有没有可能打印这个十六进制十进制线程代码的方法?到命令提示符?我正在使用具有 Windows 属性的 Windows 应用程序,但是当我在具有控制台属性的 Windows 应用程序中尝试时,“线程 0x2ef0”没有显示出来,所以我想在命令提示符下显示它。
【问题讨论】:
标签: c#
可能是其中之一:
using System;
using System.Diagnostics;
using System.Threading;
namespace Demo
{
internal static class Program
{
private static void Main()
{
Console.WriteLine("0x{0:x4}", Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("0x{0:x4}", Thread.CurrentThread.GetHashCode());
Console.WriteLine("0x{0:x4}", AppDomain.GetCurrentThreadId());
Console.WriteLine("0x{0:x4}", Process.GetCurrentProcess().Threads[0].Id);
}
}
}
【讨论】:
尝试使用CurrentThread property 以获取您正在寻找的数据。
Task<Double> t = Task.Run( () => { ShowThreadInformation("Main Task(Task #" + Task.CurrentId.ToString() + ")");
for (int ctr = 1; ctr <= 20; ctr++)
tasks.Add(Task.Factory.StartNew(
() => { ShowThreadInformation("Task #" + Task.CurrentId.ToString());
long s = 0;
for (int n = 0; n <= 999999; n++) {
lock (rndLock) {
s += rnd.Next(1, 1000001);
}
}
return s/1000000.0;
} ));
Task.WaitAll(tasks.ToArray());
Double grandTotal = 0;
Console.WriteLine("Means of each task: ");
foreach (var child in tasks) {
Console.WriteLine(" {0}", child.Result);
grandTotal += child.Result;
}
Console.WriteLine();
return grandTotal / 20;
} );
Console.WriteLine("Mean of Means: {0}", t.Result);
【讨论】: