Browse Source

explicit disposal

Jonas Nyrup 3 years ago
parent
commit
a6f4fd7f49

+ 1 - 4
QuestPDF.Previewer/Helpers.cs

@@ -8,16 +8,13 @@ class Helpers
     {
         using var stream = File.Create(filePath);
             
-        var document = SKDocument.CreatePdf(stream);
+        using var document = SKDocument.CreatePdf(stream);
             
         foreach (var page in pages)
         {
             using var canvas = document.BeginPage(page.Width, page.Height);
             canvas.DrawPicture(page.Picture);
             document.EndPage();
-            canvas.Dispose();
         }
-        
-        document.Close();
     }
 }

+ 1 - 1
QuestPDF.Previewer/PreviewerWindowViewModel.cs

@@ -63,7 +63,7 @@ namespace QuestPDF.Previewer
         
         private void OpenLink(string path)
         {
-            var openBrowserProcess = new Process
+            using var openBrowserProcess = new Process
             {
                 StartInfo = new()
                 {

+ 1 - 1
QuestPDF/Previewer/PreviewerExtensions.cs

@@ -20,7 +20,7 @@ namespace QuestPDF.Previewer
         {
             var previewerService = new PreviewerService(port);
             
-            var cancellationTokenSource = new CancellationTokenSource();
+            using var cancellationTokenSource = new CancellationTokenSource();
             previewerService.OnPreviewerStopped += () => cancellationTokenSource.Cancel();
             
             await previewerService.Connect();

+ 7 - 6
QuestPDF/Previewer/PreviewerService.cs

@@ -46,7 +46,7 @@ namespace QuestPDF.Previewer
         {
             try
             {
-                var result = await HttpClient.GetAsync("/ping");
+                using var result = await HttpClient.GetAsync("/ping");
                 return result.IsSuccessStatusCode;
             }
             catch
@@ -57,7 +57,7 @@ namespace QuestPDF.Previewer
         
         private async Task<Version> GetPreviewerVersion()
         {
-            var result = await HttpClient.GetAsync("/version");
+            using var result = await HttpClient.GetAsync("/version");
             return await result.Content.ReadFromJsonAsync<Version>();
         }
         
@@ -81,6 +81,7 @@ namespace QuestPDF.Previewer
                 Task.Run(async () =>
                 {
                     await process.WaitForExitAsync();
+                    process.Dispose();
                     OnPreviewerStopped?.Invoke();
                 });
             }
@@ -103,14 +104,14 @@ namespace QuestPDF.Previewer
         
         private async Task WaitForConnection()
         {
-            var cancellationTokenSource = new CancellationTokenSource();
+            using var cancellationTokenSource = new CancellationTokenSource();
             cancellationTokenSource.CancelAfter(TimeSpan.FromSeconds(10));
             
             var cancellationToken = cancellationTokenSource.Token; 
             
             while (true)
             {
-                await Task.Delay(TimeSpan.FromMilliseconds(250));
+                await Task.Delay(TimeSpan.FromMilliseconds(250), cancellationToken);
 
                 if (cancellationToken.IsCancellationRequested)
                     throw new Exception($"Cannot connect to the QuestPDF Previewer tool. Please make sure that your Operating System does not block HTTP connections on port {Port}.");
@@ -124,7 +125,7 @@ namespace QuestPDF.Previewer
         
         public async Task RefreshPreview(ICollection<PreviewerPicture> pictures)
         {
-            var multipartContent = new MultipartFormDataContent();
+            using var multipartContent = new MultipartFormDataContent();
 
             var pages = new List<PreviewerRefreshCommand.Page>();
             
@@ -149,7 +150,7 @@ namespace QuestPDF.Previewer
             
             multipartContent.Add(JsonContent.Create(command), "command");
 
-            await HttpClient.PostAsync("/update/preview", multipartContent);
+            using var _ = await HttpClient.PostAsync("/update/preview", multipartContent);
 
             foreach (var picture in pictures)
                 picture.Picture.Dispose();