public void CountThreads(iSCDThreadContainer container) { iSCDDebuggingThreadContainerInfo info = new iSCDDebuggingThreadContainerInfo(container); containerInfos.Add(info); totalThreadsStarted++; }
public double MillisecondsSinceThreadStarted(int threadID) { iSCDDebuggingThreadContainerInfo info = ContainerInfoForThreadID(threadID); if (info.container.IsRunning()) { return((DateTime.UtcNow - info.initedTime).TotalMilliseconds); } else { return(info.lifeTime); } }
public void Log(object content, iSCDRDLogType type, bool verbose) { if (Thread.CurrentThread.Name == null) { throw new System.Exception("iSCentralDispatchRuntimeDebugger.Log cannot be called in main thread."); } iSCDThreadContainer container = GetCurrentSender(); iSCDRDLogPackage package = new iSCDRDLogPackage(container, type, content, MillisecondsSinceThreadStarted(container.iSCD_RuntimeID) * 0.001f, verbose); iSCDDebuggingThreadContainerInfo info = ContainerInfoForThreadID(container.iSCD_RuntimeID); info.logs.Add(package); lock (logPackages) logPackages.Add(package); }
public List <iSCDRDLogPackage> LogsForThreadID(int threadID) { iSCDDebuggingThreadContainerInfo info = ContainerInfoForThreadID(threadID); return(info.logs); }
public void RegisterThreadAbort(int threadID) { iSCDDebuggingThreadContainerInfo info = ContainerInfoForThreadID(threadID); info.lifeTime = (DateTime.UtcNow - info.initedTime).TotalMilliseconds; }