Пробую так:
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{
Task<IPStatus> t = ping(dataGridView1[0, i].Value.ToString());
t.Wait();
dataGridView1[1, i].Value = t.Result;
}
}
async Task<IPStatus> ping(string address)
{
IPAddress IP = null;
IPAddress.TryParse(address,out IP);
PingReply pr = await new Ping().SendPingAsync(IP);
return pr.Status;
}
Отладка становиться на функции SendPingAsync(IP) и она выполняется до бесконечности. В чем может быть причина?
У вас дедлок, так как асинхронный метод ждет сам себя и не может вернуться в UI поток. Попробуйте так:
private async void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{
IPStatus t = await ping(dataGridView1[0, i].Value.ToString());
dataGridView1[1, i].Value = t;
}
}
async Task<IPStatus> ping(string address)
{
IPAddress IP = null;
IPAddress.TryParse(address,out IP);
PingReply pr = await new Ping().SendPingAsync(IP);
return pr.Status;
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости