Hejsan! <b>...inte vet hur jag skall hålla reda på de tillagda adresserna...</b> Tack för svaren! enklast slipper du undan om du sköter pingandet med en BackgroundWorker (sen borde du se till att du skyddar datan som du accesserar från flera trådar osv..). Sen för att pilla tillbaka data till GUI:t så kör du en Invoke för att få funktionsanropet i rätt tråd. Det som gör att GUI:t låser sig är att du använder en synkron metod. De flesta nätverksgrejer i .NET har även en asynkron metod. Den lämnar omedelbart tillbaka kontrollen till GUI:t, och anropar sedan en event när den är klar. På Ping finns metoden; SendAsync (och även SendAsyncCancel), som är den asynkrona motsvarigheten till Send.Lista med adresser att Pinga
Jag har fastnat. Jag försöker göra ett program där man lägger till internet-adresser i en lista och programmet pingar sedan de adresserna tills man tar bort dem igen. Problemet är mestadels att jag inte vet hur jag skall hålla reda på de tillagda adresserna samt om jag borde använda en seperat tråd för varje adress jag pingar.
Som det är nu har jag lagt ned mer tid på användargränssnittet än själva kodandet.
Bifogar källkoden eftersom jag är urdålig på att förklara (VS 2005).
http://www.kund.hemmanet.se/~jlowgren/Pinger.zipSv: Lista med adresser att Pinga
Det är väl bara att lägga till dem i ListViewn? Sen kommer du enkelt åt dem där.
Kör du utan trådar är det ju sen bara att lägga upp nåt i stil med:
foreach (ListViewItem lvi in ListView.Items)
Ping(lvi.Subitems[0].Text);
<b>...använda en seperat tråd för varje adress jag pingar...</b>
Detta är nog bara nödvändigt om du har väldigt många adresser och det är viktigt att varje adress uppdateras i ett visst intervall, t.ex. var 3:e sekund. Dock kommer detta också belasta din bandbredd betydligt mer.
Förstår inte riktigt vad du fastnat med.Sv:Lista med adresser att Pinga
Jo du förklarade vad jag undrade ganska väl. Men en sak är att när man skickar en ping request till en adress så låser sig programmet tills svaret kommer, det var mest därför jag undrade om jag bör använda en/flera seperata trådar för alla ping requests, eller om det finns en alternativ lösning.Sv: Lista med adresser att Pinga
Rätt grovt förklarat, fråga ifall nåt blev oklartSv:Lista med adresser att Pinga
Kolla i MSDN-hjälpen. Där finns alla metoder och ett trevligt exempel hur man gör det asynkront.