Avatar billede the-gnu.dk Nybegynder
11. maj 2006 - 11:33 Der er 5 kommentarer og
1 løsning

Ny Form på anden tråd

Jeg har to tråde kørende, main-tråden samt en anden worker.

På et eller andet tidspunkt beslutter "workeren" at main-tråden skal åbne en ny Form og vise den. Den kaleder et delegat, som skal åben Formen. Problemet er, at når worker-tråden kalder, bliver formen ikke lavet på main-tråden. Det giver et problem.

Jeg har ikke nogen Control, som jeg kan Invoke på

Nogen der kan hjælpe med en løsning?
Avatar billede Spotgun Seniormester
11. maj 2006 - 16:02 #1
Det er bare et vildt gæt, men kan du evt. benytte Parent.Invoke() på din main-tråd? Det er jo også et Control objekt, så måske kan den kringles ad den vej...
Avatar billede the-gnu.dk Nybegynder
11. maj 2006 - 19:42 #2
Hmm.. Thread har ikke en Parent property eller metode?
Avatar billede tuxic Nybegynder
12. maj 2006 - 11:47 #3
Som jeg umiddelbart ser det er der behov for at de to tråde snakker sammen. Det kan fx gøres ved at lave en (trådsikker) kø/Queue hvor worker tråden lægger beskeder ind og main tråden tager beskeder ud. Alternativt bruge en EventWaitHandle.
Avatar billede the-gnu.dk Nybegynder
14. maj 2006 - 18:51 #4
Løsning: Man kan lave en Form, som man blot disabler og ikke kalder Show(). Den kan man tvinge til at tage et Handle ved at bruge Form.Handle; hvorefter man kan bruge Invoke();
Avatar billede tuxic Nybegynder
14. maj 2006 - 21:40 #5
Super. Hvem opretter det Handle man giver formen? Er det workertråden?
Avatar billede the-gnu.dk Nybegynder
14. maj 2006 - 21:42 #6
Jeg tror umiddelbart det er lige meget om det er den ene eller den anden. Det vigtigste er, at man kan bruge formen til at lave en Invoke() på, og dermed opnå at den rigtige tråd laver metodekald.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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