/// <summary> /// Write the message to the current thread's log. /// </summary> /// <param name="e"></param> public void Write(Log.MessageType type, string message, string details = null) { lock (this) { if (type == Log.MessageType.EXIT) { if (exiting_thread != null) { return; } exiting_thread = new Thread(() => { if (Exitig != null) { Exitig.Invoke(message); } write(type, message, details); Environment.Exit(0); }); exiting_thread.Start(); } else { write(type, message, details); } } }
/// <summary> /// General writting log method. /// </summary> public void Write(Log.MessageType messageType, string message, string details = null) { lock (this) { write(messageType, message, details); if (messageType == Log.MessageType.EXIT) { if (exiting) { return; } exiting = true; //if (exitingThread != null) // return; //exitingThread = ThreadRoutines.Start(() => //{ try { Exitig?.Invoke(message); } catch (Exception e) { write(Log.MessageType.ERROR, GetExceptionMessage(e)); } finally { Environment.Exit(0); } //}); } } }
/// <summary> /// Write the message to the current thread's log. /// </summary> /// <param name="e"></param> public void Write(Log.MessageType messageType, string message, string details = null) { lock (this) { if (messageType == Log.MessageType.EXIT) { if (exiting_thread != null) { return; } write(messageType, message, details); exiting_thread = startThread(() => { try { if (Exitig != null) { Exitig.Invoke(message); } } catch (Exception e) { string m; string d; GetExceptionMessage(e, out m, out d); write(Log.MessageType.ERROR, m, d); } finally { Environment.Exit(0); } }); } else { write(messageType, message, details); } } }