本文整理汇总了C#中ThreadInfo.Fill方法的典型用法代码示例。如果您正苦于以下问题:C# ThreadInfo.Fill方法的具体用法?C# ThreadInfo.Fill怎么用?C# ThreadInfo.Fill使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ThreadInfo
的用法示例。
在下文中一共展示了ThreadInfo.Fill方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Generate
public override bool Generate(CommandExecutionContext context)
{
var managedThreadNames = GetManagedThreadNames(context.Heap);
var target = context.NativeDbgEngTarget;
IDebugSystemObjects3 sysObjects = (IDebugSystemObjects3)target.DebuggerInterface;
sysObjects.GetCurrentProcessUpTime(out _processUpTimeInSeconds);
var debugAdvanced = (IDebugAdvanced2)target.DebuggerInterface;
var stackTraces = new UnifiedStackTraces(target.DebuggerInterface, context);
foreach (var thread in stackTraces.Threads)
{
var stackTrace = stackTraces.GetStackTrace(thread.Index);
var threadInfo = new ThreadInfo
{
EngineThreadId = thread.EngineThreadId,
OSThreadId = thread.OSThreadId,
ManagedThreadId = thread.ManagedThread?.ManagedThreadId ?? -1,
SpecialDescription = thread.ManagedThread?.SpecialDescription()
};
string threadName;
if (managedThreadNames.TryGetValue(threadInfo.ManagedThreadId, out threadName))
threadInfo.ThreadName = threadName;
threadInfo.Fill(debugAdvanced);
foreach (var frame in stackTrace)
{
threadInfo.StackFrames.Add(new StackFrame
{
Module = frame.Module,
Method = frame.Method,
SourceFileName = frame.SourceFileName,
SourceLineNumber = frame.SourceLineNumber
});
}
Threads.Add(threadInfo);
}
RecommendFinalizerThreadHighCPU(context);
RecommendHighNumberOfThreads();
return true;
}