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); } } }
private void SendAsyncInternal(PingTaskState state) { if (Executor.Command.Stopping) { return; } state.RemainingCount--; state.Ping.SendAsync(state.IPAddress, Timeout, Buffer, PingOptions, state); }
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); }
private void SendAsyncInternal(PingTaskState state) { if (Executor.Command.Stopping) return; state.RemainingCount--; state.Ping.SendAsync(state.IPAddress, Timeout, Buffer, PingOptions, state); }
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; }