private async void PingMethod() { Task <PingResponse> obj = new Task <PingResponse>( () => DoTheJob(textBox1.Text)); //lambda izrazom pridruzujemo pripadajucu funkciju Task objektu. obj.Start(); //osiguravamo da nova nit izvodenja ne barata elementima glavne niti i da ne blokiramo rad aplikacije. panel1.Visible = true; await obj; //cekamo asinkrono izvodenje Metode DoTheJob PingResponse pr = obj.Result; ipstatus1.Text = pr.Status ? "Available": "Unavailable"; rt1.Text = pr.TripTime.ToString() + " miliseconds"; }
private PingResponse DoTheJob(string ip) { Ping isPing = new Ping(); PingResponse pr = new PingResponse(); //instanciramo objekt naseg tipa PingResponse try { PingReply reply = isPing.Send(ip); //saljemo ping prema ip-u,rezultat spremamo u objekt tipa PingReply. pr.Status = reply.Status == IPStatus.Success; pr.TripTime = reply.RoundtripTime; return(pr); } catch (PingException) //hvatamo iznimku koju eventualno baca isPing.Send { pr.Status = false; pr.TripTime = 0; return(pr); } }