FlowLayoutPanel に項目を追加しています。各項目は、IP アドレスに対して ping テストを実行し、そのアップまたはダウンを通知します。私が抱えている問題: すべての項目が結果になるまで、FlowLayoutPanel には何も投稿されません。各項目を完了として投稿し、すべてが完了するのを待ちません。これを行うためにスレッドを使用する方法があるかもしれないと思っていましたか? 現時点ではよくわかりません。いくつかのガイダンスは素晴らしいでしょう!foreach ループは次のようになります。
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++;
}