这个问题是我曾问过的上一个问题的后续问题:
我能够获得接受的答案(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)