Exemple #1
0
        private void OnPingCompleted(object sender, PingCompletedEventArgs e)
        {
            PingTaskState state = e.UserState as PingTaskState;

            if (state != null)
            {
                if (e.Cancelled || Executor.Command.Stopping)
                {
                    state.Ping.Dispose();
                    return;
                }

                PingHostInfo result = new PingHostInfo(this, state.IPAddress, e.Reply, e.Error, Buffer.Length);
                Executor.WriteInfo(result);

                if (state.RemainingCount == 0)
                {
                    state.Ping.Dispose();
                }
                else
                {
                    SendAsyncInternal(state);
                }
            }
        }
Exemple #2
0
        private void SendAsyncInternal(PingTaskState state)
        {
            if (Executor.Command.Stopping)
            {
                return;
            }

            state.RemainingCount--;
            state.Ping.SendAsync(state.IPAddress, Timeout, Buffer, PingOptions, state);
        }
Exemple #3
0
        public int SendAsync()
        {
            foreach (IPAddress ip in Addresses)
            {
                Ping ping = new Ping();
                ping.PingCompleted += new PingCompletedEventHandler(OnPingCompleted);

                PingTaskState state = new PingTaskState(ping, ip, Count);
                SendAsyncInternal(state);
            }

            return(Addresses.Length * Count);
        }
Exemple #4
0
        private void SendAsyncInternal(PingTaskState state)
        {
            if (Executor.Command.Stopping)
                return;

            state.RemainingCount--;
            state.Ping.SendAsync(state.IPAddress, Timeout, Buffer, PingOptions, state);
        }
Exemple #5
0
        public int SendAsync()
        {
            foreach (IPAddress ip in Addresses)
            {
                Ping ping = new Ping();
                ping.PingCompleted += new PingCompletedEventHandler(OnPingCompleted);

                PingTaskState state = new PingTaskState(ping, ip, Count);
                SendAsyncInternal(state);
            }

            return Addresses.Length * Count;
        }