public static void DumpLog() { LastOperation.Wait(); TextRange tr = new TextRange(_Instance.Console.Document.ContentStart, _Instance.Console.Document.ContentEnd); string dir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Logs"); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } IEnumerable <string> logFiles = Directory.EnumerateFiles(dir); if (logFiles.Count() >= 10) { foreach (string file in logFiles) { File.Delete(Path.Combine(dir, file)); } } File.WriteAllText(Path.Combine(dir, $"{DateTime.Now:dd\\-M\\-yyyy}_{DateTime.Now.GetHashCode()}_DEBUG-HunterPie.log"), tr.Text); }
public static void DumpLog() { LastOperation.Wait(); string dir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Logs"); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } IEnumerable <string> logFiles = Directory.EnumerateFiles(dir); if (logFiles.Count() >= 10) { foreach (string file in logFiles) { File.Delete(Path.Combine(dir, file)); } } File.WriteAllLines(Path.Combine(dir, $"{DateTime.Now:dd\\-M\\-yyyy}_{DateTime.Now.GetHashCode()}_DEBUG-HunterPie.log"), logs.Select(l => l.Text).ToArray()); }
private void work() { while (!m_disposed) { bool getInput = false; using (m_lockHelper.GetLock()) { if (m_disposed) { continue; } else if (m_workWaiting) { getInput = true; m_workWaiting = false; } else { m_lockHelper.Wait(); continue; } } if (getInput && !m_disposed) { m_operation = Dispatcher.BeginInvoke(DispatcherPriority.Background, m_preWork); if (!m_disposed && m_operation.Wait() == DispatcherOperationStatus.Completed) { bool processInput = (bool)m_operation.Result; m_operation = null; if (processInput) { bool workSucceeded = false; try { m_work(); workSucceeded = true; } catch (Exception ex) { if (Util.IsCriticalException(ex)) { throw; } else { OnClientException(new NotifyWorkerClientExceptionEventArgs(ex)); } } if (!m_disposed && workSucceeded) { // Aside from just calling m_postWork, // we want to call OnClientException with null to clear // out a LastException, if one exists...all on the Dispatcher thread m_operation = Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(delegate() { m_postWork(); OnClientException(null); })); if (!m_disposed) { m_operation.Wait(); } m_operation = null; } // if (!m_disposed && workSucceeded) } // if (processInput && !m_disposed) } // if Operation completed } // if (getInput) } // while (!m_disposed) }