Add Utils.RunBackground
This commit is contained in:
@ -19,13 +19,13 @@ namespace WGneu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnStartup(StartupEventArgs e) {
|
protected override void OnStartup(StartupEventArgs e) {
|
||||||
Task.Run(() => Documents.Html.Init(PrintingReadyChanged));
|
Utils.RunBackground("HTML Initialization", () => Documents.Html.Init(PrintingReadyChanged));
|
||||||
Task.Run(() => Documents.Pdf.Init(PrintingReadyChanged));
|
Utils.RunBackground("PDF Initialization", () => Documents.Pdf.Init(PrintingReadyChanged));
|
||||||
base.OnStartup(e);
|
base.OnStartup(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnExit(ExitEventArgs e) {
|
protected override void OnExit(ExitEventArgs e) {
|
||||||
Task.Run(() => Documents.Pdf.Close());
|
Utils.RunBackground("PDF Close", () => Documents.Pdf.Close());
|
||||||
base.OnExit(e);
|
base.OnExit(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ namespace WGneu.Documents {
|
|||||||
if (Browser == null) throw new InvalidOperationException("The puppeteer engine has not been initialized yet");
|
if (Browser == null) throw new InvalidOperationException("The puppeteer engine has not been initialized yet");
|
||||||
using var page = await Browser.NewPageAsync();
|
using var page = await Browser.NewPageAsync();
|
||||||
page.Console += OnConsole;
|
page.Console += OnConsole;
|
||||||
await page.GoToAsync("file://" + htmlPath);
|
await page.GoToAsync($"file://{htmlPath}");
|
||||||
await page.EvaluateFunctionAsync("async () => { await window.PagedPolyfill.preview(); }");
|
await page.EvaluateFunctionAsync("async () => { await window.PagedPolyfill.preview(); }");
|
||||||
await page.PdfAsync(pdfPath, new() {
|
await page.PdfAsync(pdfPath, new() {
|
||||||
PreferCSSPageSize = true,
|
PreferCSSPageSize = true,
|
||||||
|
@ -46,6 +46,16 @@ namespace WGneu {
|
|||||||
return a.Select(ch => ch - '0').Aggregate((sum, n) => (sum * 10 + n) % b);
|
return a.Select(ch => ch - '0').Aggregate((sum, n) => (sum * 10 + n) % b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void RunBackground(string title, Func<Task> a) {
|
||||||
|
Task.Run(async () => {
|
||||||
|
try {
|
||||||
|
await a();
|
||||||
|
} catch (Exception e) {
|
||||||
|
MessageBox.Show(e.ToString(), title, MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public sealed class TemporaryFile : IDisposable {
|
public sealed class TemporaryFile : IDisposable {
|
||||||
private int Usages = 0;
|
private int Usages = 0;
|
||||||
public string FilePath { get; private set; }
|
public string FilePath { get; private set; }
|
||||||
|
@ -43,14 +43,10 @@ namespace WGneu.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void Button4_Click(object sender, EventArgs e) {
|
private void Button4_Click(object sender, EventArgs e) {
|
||||||
Task.Run(async () => {
|
Utils.RunBackground("PDF Generation", async () => {
|
||||||
try {
|
using var letter = new BusinessLetter("Test Dokument", _context.Members.First());
|
||||||
using var letter = new BusinessLetter("Test Dokument", _context.Members.First());
|
await letter.Generate();
|
||||||
await letter.Generate();
|
letter.Show();
|
||||||
letter.Show();
|
|
||||||
} catch (Exception e) {
|
|
||||||
MessageBox.Show(e.ToString(), "PDF Generation", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user