C# SendPingAsync -- Need help

Im writing a C# Ping-Application. I started with a synchronous Ping-method, but I figurred out that pinging several server with one click takes more and more time. So I decided to try the asynchronous method.

Can someone help me out?

public async Task<string> CustomPing(string ip, int amountOfPackets, int sizeOfPackets)
    // timeout
    int Timeout = 2000;
    // PaketSize logic
    string packet = "";
    for (int j = 0; j < sizeOfPackets; j++)
        packet += "b";
    byte[] buffer = Encoding.ASCII.GetBytes(packet);
    // time-var
    long ms = 0;
    // Main Method
    using (Ping ping = new Ping())
        for (int i = 0; i < amountOfPackets; i++)
            PingReply reply = await ping.SendPingAsync(ip, Timeout, buffer);
            ms += reply.RoundtripTime;
    return (ms / amountOfPackets + " ms");

I defined a “Server”-Class (Ip or host, City, Country).

Then I create a “server”-List:

List<Server> ServerList = new List<Server>()
                new Server("www.google.de", "Some City,", "Some Country")

Then I loop through this list and I try to call the method like this:

foreach (var server in ServerList)
ListBox.Items.Add("The average response time of your custom server is: " + server.CustomPing(server.IP, amountOfPackets, sizeOfPackets));

Unfortunately, this is much more competitive than the synchronous method, and at the point where my method should return the value, it returns