Mr Burns Skrevet 22. juni 2007 Del Skrevet 22. juni 2007 Jeg har noe en sak jeg må kommunisere med ved hjelp av serieporten. Den polles ved faste tidspunkter for status på en tråd, og det blir sendt kommandoer til den uregelmessig (alt etter hva bruker finner på). Dette blir da gjort på en annen tråd. Problemet oppstår når en kommando sammenfaller (i tid) med en statusoppdatering. Da blir svaret på kommandoen blandet sammen med statusrapporten. Det er ikke bra. Hvordan kan jeg unngå at porten blir brukt av to tråder samtidig? Legge til noe a la dette? while(portBusy) { } portBusy = true; // Bruke port her... // ferdig med port portBusy = false; Det kan tenkes at to tråder fremdeles klarer å gjøre dette samtidig... Lenke til kommentar
hockey500 Skrevet 23. juni 2007 Del Skrevet 23. juni 2007 lock {} eller System.Threading.Monitor kanskje? Lenke til kommentar
Giddion Skrevet 23. juni 2007 Del Skrevet 23. juni 2007 Snakker vi .NET her? Hvis vi snakker om win32/64 så kan du bruke Critical Section Objects så lenge du ikke bruker med enn en prosess. Lenke til kommentar
Mr Burns Skrevet 23. juni 2007 Forfatter Del Skrevet 23. juni 2007 Bruker C# NET2.0 og Win32, ja. Tenkte at problemet var generelt, mne løsningen for mitt vedkommende vil være spesifikt. Den lock-saken så lovende ut. Da blir det omtrent slik i hver enkelt kommando som bruker serieporten, og også i statusoppdateringen? lock (lockObj) { // bruke serieport } 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å