192.168.0.0 -192.168.255.255 과 같은 범위에서 네트워크 주소를 내 listview에 쓰려 고 스레드 응용 프로그램을 작성했지만이 응용 프로그램을 실행할 때 모든 스레드가 주소를 추가하려고합니다. listview에 간단한 해결책이 있습니까?모든 작업이 같은 작업을 수행하는 모든 스레드
여기 내 코드입니다 :
namespace ListNetworkComputers
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
const int step = 16777216;
int threadCount = 1;
private void frmMain_Load(object sender, EventArgs e)
{
ıpAddressControl1.Text = "192.168.0.0";
ıpAddressControl2.Text = "192.168.255.255";
}
private void btnShowPcc_Click(object sender, EventArgs e)
{
threadCount = Convert.ToInt32(nudThreads.Value);
Thread[] threads = new Thread[threadCount];
for (int i = 0; i < threadCount; i++)
{
threads[i] = new Thread(new ThreadStart(getPerformance));
threads[i].Name = string.Format(i.ToString());
}
foreach (Thread t in threads)
{
t.Start();
}
}
private void getPerformance()
{
uint startIntAdress, endIntAdress;
startIntAdress = BitConverter.ToUInt32(IPAddress.Parse(ıpAddressControl1.Text).GetAddressBytes(), 0);
endIntAdress = BitConverter.ToUInt32(IPAddress.Parse(ıpAddressControl2.Text).GetAddressBytes(), 0);
for (uint i = startIntAdress; i < endIntAdress; i = i + step)
{
string ipAddress = new IPAddress(BitConverter.GetBytes(i)).ToString();
lbNetworkComputers.Items.Add(ipAddress);
}
}
}
}
와 또 다른 문제는, 내 단계 방법 (... 16777216로 adresses을 increaseing)은 건강한 작업 밤은. 192.168.0.0에서 192.168.0.255로 바뀌지 만 이후에는 그렇지 않습니다.
그래 당신 말이 맞아,이 과정 나던 내가 각 시스템에 대한 성능 카운터를 얻을 것이다 스레드가 필요하므로이 나를 위해 간단한 방법입니다. – Rapunzo
@Rapunzo - 괜찮습니다. 뭔가 빠뜨린 것 같았습니다. – ChrisF