Tôi có một ứng dụng ping mọi IP có thể trên mạng con cục bộ của bạn để biên dịch danh sách địa chỉ IP đáp ứng. Hiện tại nó ping tất cả 255 tại một thời điểm. Có thể chuyển đổi ứng dụng này để sử dụng nhiều chủ đề để tăng tốc độ bằng cách ping nhiều lần cùng một lúc không? Tôi mới đến khái niệm của nhiều chủ đề và con số này sẽ là một cách tốt để tìm hiểu (miễn là nó có thể tất nhiên).Chuyển đổi ứng dụng Ping sang phiên bản đa luồng để tăng tốc độ - C#
cũng vậy, mọi cải tiến về phong cách bạn có thể giáo dục tôi cũng sẽ hữu ích.
cảm ơn trước thời hạn
Đây là phương pháp ping hiện tại trong sự kiện backgroundWorker1_DoWork.
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
count = 0;
for (int i = 1; i < 255; i++)
{
Ping ping = new Ping();
PingReply pingreply = ping.Send(IPAddress.Parse(locip[0] + "." + locip[1] + "." + locip[2] + "." + i));
count += 1;
if (pingreply.Status == IPStatus.Success)
{
status = "o";
repAddress = pingreply.Address.ToString(); ;
repRoundtrip = pingreply.RoundtripTime.ToString();
repTTL = pingreply.Options.Ttl.ToString();
repBuffer = pingreply.Buffer.Length.ToString();
string[] lineBuffer = { status, repAddress, repRoundtrip, repTTL, repBuffer };
ipList.Rows.Add(lineBuffer);
}
progressBar.Invoke(new MethodInvoker(UpdateProgressBarByOne));
progressStatus.Text = ("Pinging IP " + count + " of 254");
}
button1.Enabled = true;
progressBar.Invoke(new MethodInvoker(ResetProgressBar));
}
Tôi chắc chắn điều này có ý nghĩa hoàn toàn, tôi chỉ không biết nó nói gì, lol. Xin lỗi nếu tôi là biện pháp khắc phục, giải pháp này là trên đầu của tôi, có lẽ có nghĩa là câu hỏi của tôi là trên đầu của tôi cũng có. – user48202
làm thế nào để vượt qua một đối số trong khi gọi một phương thức như thế này ipList.Invoke (new MethodInvoker (UpdateIpList (lineBuffer))); Nó liên tục nói với tôi rằng "UpdateIpList (lineBuffer)" không phải là một phương thức. – user48202
Hình thức và chuỗi Windows không dễ làm. cùng một điều với đồng thời, phải mất một chút học tập để làm cho nó đúng. Tôi rất khuyên bạn nên "Lập trình Visual C# 2008 thư viện lớp cơ sở" trong đó có một giới thiệu tuyệt vời để luồng (và tất cả các phần tốt của khuôn khổ quá.) – Spence