如何同时异步进行多次ping操作?

 程序员老板梦 发布于 2023-01-20 20:28

我似乎无法理解如何构建对SendPingAsync的异步调用.我想循环遍历一个IP地址列表,并在继续执行程序之前异步ping它们...现在需要一次一个地遍历所有这些地址.我之前问过一个关于它的问题,我认为我能够找出异步,但显然我错了.

private void button1_Click(object sender, EventArgs e)
{
    this.PingLoop();
    MessageBox.Show("hi"); //for testing

}

public async void PingLoop()
{
    Task longRunningTask = PingAsync();

    int result = await longRunningTask;
    MessageBox.Show("async call is finished!"); 

    //eventually want to loop here but for now just want to understand how this works
}

private async Task PingAsync()
{
    Ping pingSender = new Ping();
    string reply = pingSender.SendPingAsync("www.google.com", 2000).ToString();
    pingReplies.Add(reply); //what should i be awaiting here?? 
    return 1;
}

我恐怕只是不知道这里到底发生了什么......我应该什么时候回来?当我按原样运行时,我只是得到一个冻结的UI和一个ping错误.我在这里阅读了MSDN文档和大量问题,我只是没有得到它.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有