Make the Ping method thread-safe

So we do not risk blocking the main UI thread
This commit is contained in:
Rose 2022-09-24 15:28:05 -04:00
commit 4bd12ea04c

View file

@ -20,6 +20,7 @@ using System.IO;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Threading.Tasks;
namespace CalculatorUITestFramework namespace CalculatorUITestFramework
{ {
@ -146,20 +147,23 @@ namespace CalculatorUITestFramework
{ {
Uri status; Uri status;
Uri service = this.ServiceUrl; Uri service = this.ServiceUrl;
HttpClient httpClient = new HttpClient(); using (HttpClient httpClient = new HttpClient())
httpClient.Timeout = this.InitializationTimeout; {
httpClient.Timeout = this.InitializationTimeout;
if (service.IsLoopback) if (service.IsLoopback)
{ {
status = new Uri("http://localhost:" + Convert.ToString(this.Port) + "/status"); status = new Uri("http://localhost:" + Convert.ToString(this.Port) + "/status");
}
else
{
status = new Uri(service + "/status");
}
var httpResponse = Task.Run(() => httpClient.GetAsync(status)).ConfigureAwait(false).GetAwaiter().GetResult();
return httpResponse.IsSuccessStatusCode;
} }
else
{
status = new Uri(service + "/status");
}
var httpResponse = httpClient.GetAsync(status);
return httpResponse.Result.IsSuccessStatusCode;
} }
} }
} }