Attempt to fix app hang on LogMe event
This commit is contained in:
parent
43a4d0d1d7
commit
ee62d9ae8d
@ -19,7 +19,7 @@ namespace LibationWinForms.ProcessQueue
|
|||||||
LogErrorString += (_, text) => Serilog.Log.Logger.Error(text);
|
LogErrorString += (_, text) => Serilog.Log.Logger.Error(text);
|
||||||
LogError += (_, tuple) => Serilog.Log.Logger.Error(tuple.Item1, tuple.Item2 ?? "Automated backup: error");
|
LogError += (_, tuple) => Serilog.Log.Logger.Error(tuple.Item1, tuple.Item2 ?? "Automated backup: error");
|
||||||
}
|
}
|
||||||
|
private static ILogForm LogForm;
|
||||||
public static LogMe RegisterForm<T>(T form) where T : ILogForm
|
public static LogMe RegisterForm<T>(T form) where T : ILogForm
|
||||||
{
|
{
|
||||||
var logMe = new LogMe();
|
var logMe = new LogMe();
|
||||||
@ -27,19 +27,31 @@ namespace LibationWinForms.ProcessQueue
|
|||||||
if (form is null)
|
if (form is null)
|
||||||
return logMe;
|
return logMe;
|
||||||
|
|
||||||
logMe.LogInfo += (_, text) => form?.WriteLine(text);
|
LogForm = form;
|
||||||
|
|
||||||
logMe.LogErrorString += (_, text) => form?.WriteLine(text);
|
logMe.LogInfo += LogMe_LogInfo;
|
||||||
|
logMe.LogErrorString += LogMe_LogErrorString;
|
||||||
logMe.LogError += (_, tuple) =>
|
logMe.LogError += LogMe_LogError;
|
||||||
{
|
|
||||||
form?.WriteLine(tuple.Item2 ?? "Automated backup: error");
|
|
||||||
form?.WriteLine("ERROR: " + tuple.Item1.Message);
|
|
||||||
};
|
|
||||||
|
|
||||||
return logMe;
|
return logMe;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static async void LogMe_LogError(object sender, (Exception, string) tuple)
|
||||||
|
{
|
||||||
|
await Task.Run(() => LogForm?.WriteLine(tuple.Item2 ?? "Automated backup: error"));
|
||||||
|
await Task.Run(() => LogForm?.WriteLine("ERROR: " + tuple.Item1.Message));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static async void LogMe_LogErrorString(object sender, string text)
|
||||||
|
{
|
||||||
|
await Task.Run(() => LogForm?.WriteLine(text));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static async void LogMe_LogInfo(object sender, string text)
|
||||||
|
{
|
||||||
|
await Task.Run(() => LogForm?.WriteLine(text));
|
||||||
|
}
|
||||||
|
|
||||||
public void Info(string text) => LogInfo?.Invoke(this, text);
|
public void Info(string text) => LogInfo?.Invoke(this, text);
|
||||||
public void Error(string text) => LogErrorString?.Invoke(this, text);
|
public void Error(string text) => LogErrorString?.Invoke(this, text);
|
||||||
public void Error(Exception ex, string text = null) => LogError?.Invoke(this, (ex, text));
|
public void Error(Exception ex, string text = null) => LogError?.Invoke(this, (ex, text));
|
||||||
|
|||||||
@ -169,7 +169,7 @@ namespace LibationWinForms.ProcessQueue
|
|||||||
if (IsDisposed) return;
|
if (IsDisposed) return;
|
||||||
|
|
||||||
var timeStamp = DateTime.Now;
|
var timeStamp = DateTime.Now;
|
||||||
logDGV.Rows.Add(timeStamp, text.Trim());
|
Invoke(() => logDGV.Rows.Add(timeStamp, text.Trim()));
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Control event handlers
|
#region Control event handlers
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user