CommonTools/Tracing.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace CommonTools
{
public class Tracing
{
static Tracing m_instance = new Tracing();
static public void StartTrack(int id)
{
if (m_instance.CanTrace(id) == false)
return;
m_instance.PushTick();
}
static public void EndTrack(int id, string text)
{
if (m_instance.CanTrace(id) == false)
return;
m_instance.PopTick(text, null);
}
static public void EndTrack(int id, string text, params object[] args)
{
if (m_instance.CanTrace(id) == false)
return;
m_instance.PopTick(text, args);
}
static public void AddId(int id)
{
m_instance.m_ids[id] = true;
}
static public void WriteLine(int id, string text, params object[] args)
{
if (m_instance.CanTrace(id) == false)
return;
m_instance.PopTick(text, args);
}
static public void EnableTrace()
{
m_instance.m_thread = new Thread(new ThreadStart(m_instance.DoTrace));
m_instance.m_thread.Name = "Tracing";
m_instance.m_thread.Priority = ThreadPriority.Normal;
m_instance.m_thread.Start();
}
static public void Terminate()
{
if (m_instance.m_thread != null)
m_instance.m_thread.Abort();
m_instance.m_thread = null;
}
Stack<int> m_ticks = new Stack<int>();
Queue<StringBuilder> m_strings = new Queue<StringBuilder>();
Dictionary<int, bool> m_ids = new Dictionary<int,bool>();
Thread m_thread;
ManualResetEvent m_wait = new ManualResetEvent(false);
Tracing()
{
}
bool CanTrace(int id)
后面还有 62 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。