Pārlūkot izejas kodu

Avoid using Result and Wait() on Task<T>.

Gert Driesen 8 gadi atpakaļ
vecāks
revīzija
25bb64fde9

+ 8 - 6
src/Renci.SshNet/Abstractions/DnsAbstraction.cs

@@ -2,18 +2,20 @@
 using System.Net;
 using System.Net.Sockets;
 
-#if FEATURE_DEVICEINFORMATION_APM
+#if FEATURE_DNS_SYNC
+#elif FEATURE_DNS_APM
+using Renci.SshNet.Common;
+#elif FEATURE_DNS_TAP
+#elif FEATURE_DEVICEINFORMATION_APM
 using System.Collections.Generic;
 using System.Linq;
 using System.Threading;
 using Microsoft.Phone.Net.NetworkInformation;
-#endif // FEATURE_DEVICEINFORMATION_APM
-
-#if FEATURE_DATAGRAMSOCKET
+#elif FEATURE_DATAGRAMSOCKET
 using System.Collections.Generic;
 using Windows.Networking;
 using Windows.Networking.Sockets;
-#endif // FEATURE_DATAGRAMSOCKET
+#endif
 
 namespace Renci.SshNet.Abstractions
 {
@@ -41,7 +43,7 @@ namespace Renci.SshNet.Abstractions
                 throw new SshOperationTimeoutException("Timeout resolving host name.");
             return Dns.EndGetHostAddresses(asyncResult);
 #elif FEATURE_DNS_TAP
-            return Dns.GetHostAddressesAsync(hostNameOrAddress).Result;
+            return Dns.GetHostAddressesAsync(hostNameOrAddress).GetAwaiter().GetResult();
 #else
             IPAddress address;
             if (IPAddress.TryParse(hostNameOrAddress, out address))

+ 1 - 1
src/Renci.SshNet/Abstractions/ThreadAbstraction.cs

@@ -13,7 +13,7 @@ namespace Renci.SshNet.Abstractions
 #if FEATURE_THREAD_SLEEP
             System.Threading.Thread.Sleep(millisecondsTimeout);
 #elif FEATURE_THREAD_TAP
-            System.Threading.Tasks.Task.Delay(millisecondsTimeout).Wait();
+            System.Threading.Tasks.Task.Delay(millisecondsTimeout).GetAwaiter().GetResult();
 #else
             #error Suspend of the current thread is not implemented.
 #endif

+ 1 - 1
src/Renci.SshNet/Shell.cs

@@ -135,7 +135,7 @@ namespace Renci.SshNet
 
                         if (WaitHandle.WaitAny(new[] {readWaitHandle, _channelClosedWaitHandle}) == 0)
                         {
-                            var read = readTask.Result;
+                            var read = readTask.GetAwaiter().GetResult();
                             _channel.SendData(buffer, 0, read);
                             continue;
                         }