From ca47896204482bf4a6979e3838bf7f09f61cebeb Mon Sep 17 00:00:00 2001
From: giy <giy@omp-system.ru>
Date: Fri, 02 Sep 2022 14:16:56 +0300
Subject: [PATCH] Обновление до версии 2.9.0

---
 QtVsTools.Package/QML/Debugging/V4/QmlDebugV4Client.cs |   32 ++++++++++++++++----------------
 1 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/QtVsTools.Package/QML/Debugging/V4/QmlDebugV4Client.cs b/QtVsTools.Package/QML/Debugging/V4/QmlDebugV4Client.cs
index abbf6de..19f88f2 100644
--- a/QtVsTools.Package/QML/Debugging/V4/QmlDebugV4Client.cs
+++ b/QtVsTools.Package/QML/Debugging/V4/QmlDebugV4Client.cs
@@ -26,14 +26,9 @@
 **
 ****************************************************************************/
 
-using QtVsTools.Options;
 using System;
-using System.Collections.Concurrent;
-using System.IO;
 using System.Net.Sockets;
 using System.Runtime.InteropServices;
-using System.Runtime.Serialization;
-using System.Runtime.Serialization.Json;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
@@ -62,7 +57,7 @@
         IConnectionEventSink sink;
         IntPtr client;
         Task clientThread;
-        EventWaitHandle clientCreated = new EventWaitHandle(false, EventResetMode.ManualReset);
+        readonly EventWaitHandle clientCreated = new EventWaitHandle(false, EventResetMode.ManualReset);
         EventWaitHandle clientConnected;
 
         public uint? ThreadId { get; private set; }
@@ -82,7 +77,7 @@
                 if (state != value) {
                     var oldState = state;
                     state = value;
-                    Task.Run(() => sink.NotifyStateTransition(this, oldState, value));
+                    _ = Task.Run(() => sink.NotifyStateTransition(this, oldState, value));
                 }
             }
         }
@@ -100,14 +95,17 @@
         {
             this.sink = sink;
 
-            Task.WaitAny(new[]
+            QtVsToolsPackage.Instance.JoinableTaskFactory.Run(async () =>
             {
-                // Try to start client thread
-                // Unblock if thread was abruptly terminated (e.g. DLL not found)
-                clientThread = Task.Run(() => ClientThread()),
+                await Task.WhenAny(new[]
+                {
+                    // Try to start client thread
+                    // Unblock if thread was abruptly terminated (e.g. DLL not found)
+                    clientThread = Task.Run(() => ClientThread()),
 
-                // Unblock if client was created (i.e. client thread is running)
-                Task.Run(() => clientCreated.WaitOne())
+                    // Unblock if client was created (i.e. client thread is running)
+                    Task.Run(() => clientCreated.WaitOne())
+                });
             });
 
             if (State == DebugClientState.Unavailable) {
@@ -135,7 +133,9 @@
         {
             if (State != DebugClientState.Unavailable) {
                 NativeMethods.DebugClientShutdown(client);
-                clientThread.Wait();
+
+                QtVsToolsPackage.Instance.JoinableTaskFactory.Run(
+                    async () => await Task.WhenAll(new[] { clientThread }));
             }
         }
 
@@ -180,7 +180,7 @@
             var hostNameData = Encoding.UTF8.GetBytes(hostName);
 
             uint timeout = (uint)QtVsToolsPackage.Instance.Options.QmlDebuggerTimeout;
-            Task.Run(() =>
+            _ = Task.Run(() =>
             {
                 var connectTimer = new System.Diagnostics.Stopwatch();
                 connectTimer.Start();
@@ -246,7 +246,7 @@
 
             uint timeout = (uint)QtVsToolsPackage.Instance.Options.QmlDebuggerTimeout;
             if (timeout != 0) {
-                Task.Run(() =>
+                _ = Task.Run(() =>
                 {
                     var connectTimer = new System.Diagnostics.Stopwatch();
                     connectTimer.Start();

--
Gitblit v1.9.1