SocketException - fryser?

Tags:    .net

<< < 12 > >>
Hej Udviklere,

jeg er ved at lave et program som tjekker om en server er online og om servicen er aktiv. Til det benytter jeg Socket. Men når serveren ikke er aktiv bliver der kastet en socketexception, og jeg fanger den med try-catch. Mit problem er at når den tjekker flere servere ud, så fryser den, og når der så ikke bliver kastet flere Socket exceptions fortsætter programmet og viser resultaterne. Hvordan kan jeg undgå at programmet fryser? Det er kun en Debug indtil videre.



13 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Nej jeg får ikke en fejl. Problemet er:

jeg har en streng der hedder serverStatus. Når jeg har initialiseret min Tråd og med værdier, som IP og port, opdaterer den uden problemer. I den samme tråd skal den sætte serverStatus til Online hvis computeren er online og offline når den er offline. Problemet er at serverStatus værdi angives i den nyoprettet tråd, når den er sat i gang. Jeg har læst man ikke kan angive værdier til strenge som er inde i en tråd som kører (den jeg startede). Jeg skal have givet en værdi til serverStatus, men problemet er hvordan da serverStatus angives når tråden er startet og det kan man ikke. Nogen forslag?


Hvor har du læst det henne? Det har jeg aldrig nogensinde haft et problem med. Kan du poste en kopi af koden?



Du kan eventuelt undersøgere om serveren er online i en anden tråd, på den måde kan resten af dit program arbejde videre imens.

Se lidt på System.Threading namespacet. :)



Har jeg kigget på men synes ikke jeg kunne få til at virke. Men ja, jeg kunne prøve igen. Sidst jeg prøvede satte jeg den nye tråd til at tilføje den til mit listView og det gad den ik, men jo vil prøve det igen.



Kunne du ikke evt komme med et eks. Min check function er bool, og man skal bruge void() uden værdier i Thread.



Du skal huske at når du tilgår et element på din hovedtråd (applikationstråden), så skal du bruge Invoke - ellers vil du få en fejl når du prøver at tilføje noget til din liste fra din anden tråd.

Er det .NET 2.0 du kører? Hvis ja, så kan du sende en parameter med til din tråd ved at bruge ParameterizedThreadStart istedet for ThreadStart, og dette objekt kan du så aflæse igen fra din hovedtråd, når tråden er færdig med at checke op på serverne.



Ja jeg bruger .NET 2.0, okay det vil jeg lige prøve.



Ok nu har jeg fået den til at opdatere via den anden tråd. Nu er mit problem at jeg skal sætte en string alt efter om serveren er oppe og nede samt at sætte en color. Det gør jeg, men det vil den ikke. Mener at have læst at når en tråd er startet kan man ikke sætte værdier, er det rigtigt? Hvis det er hvad har du så af forslag til at kunne lave det?



Får du en fejl (exception) ?? Det er korrekt at du ikke kan tilgå kontroller som er oprettet på hovedtråden fra en anden tråd - hvis det er det du gør så skal du bruge Invoke(...)



Nej jeg får ikke en fejl. Problemet er:

jeg har en streng der hedder serverStatus. Når jeg har initialiseret min Tråd og med værdier, som IP og port, opdaterer den uden problemer. I den samme tråd skal den sætte serverStatus til Online hvis computeren er online og offline når den er offline. Problemet er at serverStatus værdi angives i den nyoprettet tråd, når den er sat i gang. Jeg har læst man ikke kan angive værdier til strenge som er inde i en tråd som kører (den jeg startede). Jeg skal have givet en værdi til serverStatus, men problemet er hvordan da serverStatus angives når tråden er startet og det kan man ikke. Nogen forslag?



Koden som den nye tråd udfører.

Fold kodeboks ind/udKode 


Functionen som starter tråd og opdaterer listview
Fold kodeboks ind/udKode 




<< < 12 > >>
t