मेरे पास एक ऐसा एप्लिकेशन है जो उत्तरदायी आईपी पते की सूची संकलित करने के लिए आपके स्थानीय सबनेट पर प्रत्येक संभावित आईपी को पिंग करता है। वर्तमान में यह एक समय में सभी 255 एक को पिंग करता है। क्या इस ऐप को एक समय में एक से अधिक पिंग करके गति को बढ़ाने के लिए एकाधिक धागे का उपयोग करने के लिए परिवर्तित करना संभव है? मैं कई धागे की अवधारणा के लिए नया हूं और यह समझने का एक अच्छा तरीका होगा (जब तक यह संभव है)।पिंग एप्लिकेशन को गति बढ़ाने के लिए मल्टीथ्रेड संस्करण में कनवर्ट करें - सी #
भी, कोई स्टाइलिस्ट सुधार जो आप मुझे शिक्षित कर सकते हैं, भी सहायक होगा।
धन्यवाद समय
के आगे यहाँ एक backgroundWorker1_DoWork स्थिति में वर्तमान pinging तरीका है।
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));
}
मुझे यकीन है कि यह पूरी तरह से समझ में आता है, मुझे नहीं पता कि यह क्या कहता है, lol। क्षमा करें अगर मैं उपचारात्मक हूं, तो यह समाधान मेरे सिर पर है, जिसका शायद मतलब है कि मेरा प्रश्न भी मेरे सिर पर है। – user48202
इस ipList.Invoke (नया MethodInvoker (UpdateIpList (lineBuffer)) जैसी विधि का आविष्कार करते समय मैं एक तर्क कैसे पास करूं?); यह मुझे बताता रहता है "UpdateIpList (lineBuffer)" एक विधि नहीं है। – user48202
विंडोज फॉर्म और थ्रेड करना आसान नहीं है। समरूपता के साथ एक ही बात, इसे सही करने के लिए थोड़ा सा सीखना पड़ता है। मैं अत्यधिक अनुशंसा करता हूं कि "प्रोग्रामिंग विजुअल सी # 2008 बेस क्लास लाइब्रेरी" जिसमें थ्रेडिंग (और ढांचे के सभी अच्छे हिस्सों भी) के लिए एक महान परिचय है। – Spence