コード例 #1
0
ファイル: Ping Application.cs プロジェクト: killiii/Ping
        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";
        }
コード例 #2
0
ファイル: Ping Application.cs プロジェクト: killiii/Ping
        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);
            }
        }