만일 응용 프로그램을 ping 요청이 사용자 인터페이스를 표시 동일한 스레드에서 수행되고 있기 때문에 :
이
내가 사용하고있는 코드입니다. 따라서 응용 프로그램은 다른 작업을 계속 수행하기 전에 핑의 응답을 기다리고 있습니다. ping이 응답하는 데 시간이 오래 걸리면 응용 프로그램이 잠긴 상태에있을 시간이 길어집니다.
당신이 Ping.Async()
방법을 사용하여로 전환하면, 실제 핑 요청이 백그라운드에서 수행 할 수 있으므로 같은의 UI와 INTERFER하지 :
long Google = -1;
var ping = new Ping();
ping.PingCompleted += (s,a) => Google = a.Reply.RoundtripTime;
ping.SendAsync("google.com",null);
그러나, 여전히해야 할 것이다 당신의 응답이 돌아 오면 응용 프로그램의 UI가 새 값으로 업데이트됩니다. 위의 예는 로컬 Google
변수를 핑 결과로 업데이트하지만 UI 스레드는 값이 변경되었음을 알 수 없습니다.
정확히 어떻게하면 프레임 워크 (Winforms, WPF, Console)가 UI에 영향을 주는지, 그리고 질문에 실제로 지정하지 않은 UI를 어떻게 설정했는지에 따라 달라집니다.
동기식으로 호출하기 때문에 비동기 메서드를 사용합니다. - https://msdn.microsoft.com/en-us/library/ms144961(v=vs.110).aspx – Lloyd