使用Parallel.ForEach

时间:2018-07-30 14:05:03

标签: c#

我正在尝试为我的项目开发网络监视器。我正在使用Parallel.ForEach并行将ping发送到列表IPListAll中列出的所有IP地址。

我想处理从所有PC收到的Reply,但是我的代码从未到达MessageBox.Show和DisplayChangeOnReply函数。我被困在这里。请帮助,我不知道我在做什么错。为了方便起见,我的代码附在下面。

while(true)
{
    object pinglock = new object();
    Parallel.ForEach(IPListAll,ipaddr =>
    {
        lock(pinglock)
        {
            reply = Ping.Send(ipaddr,500);    // this line is being executed always
            MessageBox.Show(ipaddr);        // Execution not reaching here
        }
        DisplayChangeOnReply(reply,ipaddr); // Execution nor reaching here
    });
}

0 个答案:

没有答案