private static Task SendBatchPingAsync(Func<Ping, Task<PingReply>> sendPing, Action<PingReply> pingResultValidator) { // create several concurrent pings Task[] pingTasks = new Task[s_pingcount]; for (int i = 0; i < s_pingcount; i++) { pingTasks[i] = SendPingAsync(sendPing, pingResultValidator); } return Task.WhenAll(pingTasks); }