Wubbable Skrevet 8. oktober 2008 Del Skrevet 8. oktober 2008 (endret) Private Sub DV_OnVolumeNotification(ByVal data As CoreAudioApi.AudioVolumeNotificationData) Handles AEV.OnVolumeNotification If Not BGW.IsBusy Then BGW.RunWorkerAsync(data) End Sub En enkel kode som starter en backgroundworker... Problemet er at jeg vil sende data til backgroundworkeren sin thread hver gang OnVolumeNotification eventen fyres. Er dette på noen måte mulig? Endret 8. oktober 2008 av Wubbable Lenke til kommentar
aadnk Skrevet 9. oktober 2008 Del Skrevet 9. oktober 2008 Det kommer litt an på arbeidsmengden - forventer du at bakgrunnstråden tilbringer svært liten tid på hver oppgave, er det nok mest optimalt å bruke et delt Queue-objekt, samt hente ut en synkronisert wrapper via Synchronized-metoden for trådsikkerhet (ArrayList og SyncLock i pre-2.0). La så hovedtråden starte bakgrunnstråden om køen er tom og for hver hendelseskjøring legge ut data. Bakgrunnstråden kan så simpelthen hente ut data, utføre prosesseringen, og dernest avslutte når køen er tom. Eventuelt, om arbeidsoppgavene er langvarige og egner seg til parallellkjøring, kan en godt bruke en ThreadPool. Lenke til kommentar
Wubbable Skrevet 9. oktober 2008 Forfatter Del Skrevet 9. oktober 2008 Klarte det ved hjelp av en delegate 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å