Avatar billede kingguro.dk Nybegynder
07. januar 2005 - 22:10 Der er 3 kommentarer

Sende tekststrenge mellem Threads i Windows!

Jeg er i gang med at lave en applikation indeholdende flere tråde. Disse tråde skal sende data til hinanden, for det meste kun nogle enkelte byte.. Jeg har kigget lidt på de på nogle API kald som PostThreadMessage, men denne sender bare en standart windows MSG til  en anden tråd. Jeg har slet ikke brug for alle de parametre som denne sender med? Findes der nogle API funktioner hvor man bare kan sende nogle enkelte data til en bestemt tråd..

PS: der er ingen grafik på nogle af trådende.. Det er ren konsol :)
Avatar billede kingguro.dk Nybegynder
07. januar 2005 - 22:14 #1
Det skulle gerne være sådan at tråde der afventer en besked befinder sig i suspended mode og bliver vækket så snart der bliver tilsendt en besked.
Avatar billede bertelbrander Novice
07. januar 2005 - 23:01 #2
Der findes mig bekendt ikke andet end PostThreadMessage, man må så leve med et vist spild.

Du kan bruge den ene parameter til at holde en pointer til data og den anden til længden.

Der er et meget simpelt eksempel her:
http://home20.inet.tele.dk/midgaard/snip/thread.html
Avatar billede joha Nybegynder
08. januar 2005 - 02:54 #3
PostThreadMessage bruges til at sætte en vilkårlig besked i en tråd, og er derfor meget generel. Du kan også bare overføre parameterne som du plejer, og så bruge nogen af windows synkronizerings funktionaliteter. F.eks. critical sections (søg på CRITICAL_SECTION) eller kernel-objekter (søg på funktion WaitForSingleObject())
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester