Gå til innhold

Hvordan håndtere eksklusiv adgang til ressurs?


Anbefalte innlegg

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
Videoannonse
Annonse

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...