После долгих дней разочарования я нашел способ отладки, пока единство замерзает. Я занимался деревьями (не растительностью, структурой данных), и мне было очень трудно определить, где и что вызывает переполнение стека. Переполнение стека замораживает единицу, поэтому я не вижу отладки, которая помогла бы мне решить проблему. Но теперь я нашел решение.
РЕШЕНИЕ
Итак, я попытался использовать System.Diagnostics.Debug.WriteLine
, который вы должны увидеть в окне вывода Visual Studio. Но это, похоже, не работает с проектом единства. В любом случае, я начал немного думать и придумал этот класс:
using System;
using System.IO;
public class Logger
{
public Logger(string logFilePath)
{
if(!logFilePath.EndsWith(".log"))
logFilePath += ".log";
LogFilePath = logFilePath;
if(!File.Exists(LogFilePath))
File.Create(LogFilePath).Close();
WriteLine("New Session Started");
}
public string LogFilePath { get; private set; }
public void WriteLine(object message)
{
using(StreamWriter writer = new StreamWriter(LogFilePath, true))
writer.WriteLine(DateTime.Now.ToString() + ": " + message.ToString());
}
}
Использование выглядит так:
Logger logger = new Logger(@"C:\Users\Soogbad\Desktop\MyLog.log");
logger.WriteLine("Hello World");
Это создает файл журнала, в котором вы можете увидеть все сделанные вами журналы. Работает отлично! Даже когда единство замерзает.