相关疑难解决方法(0)

Windows窗体应用程序中的任务并行库代码冻结 - 作为Windows控制台应用程序正常工作

这个问题是我曾问过的上一个问题的后续问题:

如何使用C#并行执行多个"Ping"

我能够获得接受的答案(Windows控制台应用程序),但是当我尝试在Windows窗体应用程序中运行代码时,以下代码将冻结在包含的行上Task.WaitAll(pingTasks.ToArray()).这是我试图运行的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net.NetworkInformation;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            List<String> addresses = new List<string>();

            for (Int32 i = 0; i < 10; ++i) addresses.Add("microsoft.com");

            List<Task<PingReply>> pingTasks = new List<Task<PingReply>>();
            foreach (var address in addresses)
            {
                pingTasks.Add(PingAsync(address));
            }

            //Wait for all the tasks …
Run Code Online (Sandbox Code Playgroud)

c# ping winforms task-parallel-library .net-4.5

5
推荐指数
1
解决办法
3488
查看次数

标签 统计

.net-4.5 ×1

c# ×1

ping ×1

task-parallel-library ×1

winforms ×1