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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。