Mr Burns Skrevet 30. juli 2007 Del Skrevet 30. juli 2007 Heisann! Jeg har etterhvert laget et litt omfattende program som kommuniserer med et annet program på en annen PC. Det fungerer ganske greit, men av og til blir alt tregt som sirup. Jeg vet ikke helt hvorfor... Hva kan høres for å finne synderen? Og hvordan kan slikt debugges? Lenke til kommentar
GeirGrusom Skrevet 30. juli 2007 Del Skrevet 30. juli 2007 Nettverkssaker gjøre slike ting har jeg erfart, som database koplinger, webclient etc. Lenke til kommentar
Manfred Skrevet 30. juli 2007 Del Skrevet 30. juli 2007 Dårlig optimalisert programmeringskode? Lenke til kommentar
Spartakus Skrevet 30. juli 2007 Del Skrevet 30. juli 2007 Sette breakpoint på nettverkskommunikasjon og steppe seg igjennom? Lenke til kommentar
Mr Burns Skrevet 30. juli 2007 Forfatter Del Skrevet 30. juli 2007 (endret) Dårlig optimalisert programmeringskode? 9171433[/snapback] Ja. Selvsagt er det det! Men jeg ville gjerne ha noen innspill på hvordan kan det forbedres? Forresten, none som har hørt om "thread starvation"? Jeg har syv Timere gående, kanskje det er litt mye? Endret 30. juli 2007 av Mr Burns Lenke til kommentar
GeirGrusom Skrevet 30. juli 2007 Del Skrevet 30. juli 2007 Timere bruker ikke threads, men Windows Message Queue, men det spørs veldig hva timerene gjør. Se om du kan få det til med en timer istedet. Lenke til kommentar
Mr Burns Skrevet 30. juli 2007 Forfatter Del Skrevet 30. juli 2007 Timere bruker ikke threads, men Windows Message Queue, men det spørs veldig hva timerene gjør. Se om du kan få det til med en timer istedet. 9171742[/snapback] Men kjører ikke eventhandleren på en egen tråd? Lenke til kommentar
GeirGrusom Skrevet 30. juli 2007 Del Skrevet 30. juli 2007 (endret) Alt kjører i samme tråd. Dette kan man se godt hvis man lager en Loop som ikke inneholder Application.DoEvents. DoEvents kaller i all hovedsak PeekMessage, TranslateMessage og DispatchMessage funksjonene. Edit: Grunnen til dette er at det er mye regler rundt hvordan ting skal gjøres cross-threads, derfor er det mye bedre at alt skjer i samme thread. Endret 30. juli 2007 av GeirGrusom Lenke til kommentar
Mr Burns Skrevet 30. juli 2007 Forfatter Del Skrevet 30. juli 2007 Alt kjører i samme tråd.Dette kan man se godt hvis man lager en Loop som ikke inneholder Application.DoEvents. DoEvents kaller i all hovedsak PeekMessage, TranslateMessage og DispatchMessage funksjonene. Edit: Grunnen til dette er at det er mye regler rundt hvordan ting skal gjøres cross-threads, derfor er det mye bedre at alt skjer i samme thread. 9172221[/snapback] ok... Vi snakker kanskje om forskjellige tråder? Her står det at .NET har 25 tråder i sin "Thread pool", og at disse kan bli opptatt slik at man får "thread pool starvation". Uansett, skal se om jeg ikke kan redusere antall timere. Eventhandlerne til nettkomm. tar jo også noen tråder... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå