Я добавляю элементы в FlowLayoutPanel. Каждый элемент выполняет тест ping на IP-адрес и отправляет его вверх или вниз. У меня проблема: ничто не отправляется в FlowLayoutPanel, пока каждый элемент не получит результат. Я хочу, чтобы каждый элемент отправлялся по завершении и не дождался завершения всех этих действий. Я думал, что может быть способ использовать потоки для этого? На данный момент я не уверен. Некоторые рекомендации были бы замечательными! Вот как выглядит петля foreach:Опубликовать индивидуальные результаты FlowLayoutPanel без ожидания
string[] ipList = ipListTextBox.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
statusFlowPanel.Controls.Clear();
statusFlowPanel.Controls.Add(p1);
foreach (string ip in ipList)
{;
Label ipAddressLabel = new Label();
ipAddressLabel.Text = ip;
Label statusLabel = new Label();
statusLabel.Text = "Status: ";
statusLabel.Location = new Point(20, 10 + x);
PictureBox updownPicBox = new PictureBox();
updownPicBox.Height = 30;
updownPicBox.Width = 30;
updownPicBox.Location = new Point(80, 0);
Ping pingSender = new Ping();
IPAddress address = IPAddress.Parse(ip);
PingReply reply = pingSender.Send(address);
if (reply.Status == IPStatus.Success)
{
updownPicBox.Image = Properties.Resources.up_arrow;
}
else
{
updownPicBox.Image = Properties.Resources.down_arrow;
}
var ipPanel = new Panel();
//Invoke(new Action(() =>));
statusFlowPanel.Controls.Add(ipPanel);
ipPanel.Controls.Add(updownPicBox);
ipPanel.Controls.Add(statusLabel);
ipPanel.Controls.Add(ipAddressLabel);
ipPanel.Height = 40;
x++;
}
Какой версия .net вы ориентируетесь? –
Причина, о которой я прошу, состоит в том, что некоторые действительно полезные пространства имен недоступны до .net 4.0, а именно System.Threading.Task ... и есть async/await в .net 4.5. В .net 2.0 вы можете использовать BackgroundWorker ... ответы на этот вопрос могут сильно различаться в зависимости от версии рамки, на которую вы нацеливаете. –
Я использую .net 4. Я могу обновить до 4.5. У меня нет ограничений на то, какую версию я использую. – Pacobart