Avatar billede mr-kill Nybegynder
23. december 2005 - 17:52 Der er 5 kommentarer og
1 løsning

Single-Threaded Apartments

Hey...

Hvordan laver en jeg en tråd STA?

Jeg bruger lige nu:

Modtag_pic pic = new Modtag_pic(sr, sw);
Thread send = new Thread(new ThreadStart(pic.start));
send.Start();

Men når jeg forsøger at bruge:
Clipboard.SetImage(img); i tråden for jeg fejl fordi tråden ikke er STA.

Håber i kan hjælpe...

På forhånd tak :)
Avatar billede lifo Nybegynder
23. december 2005 - 18:10 #1
du skal bruge Invoke eller BeginInvoke/EndInvoke
Avatar billede mr-kill Nybegynder
23. december 2005 - 18:21 #2
Hvor skal jeg bruge det?
Avatar billede sovsekoder Nybegynder
23. december 2005 - 22:48 #3
du skal oprette den samme thread-apartmen som COM-komponenten kræver. dvs STA - single threaded. Thread-apartment er i COM-verdnen relateret til thread-safety. Din kode skal være :
Modtag_pic pic = new Modtag_pic(sr, sw);
Thread send = new Thread(new ThreadStart(pic.start));
// Set STA on thread. Clipboard functionality requires STA.
send.ApartmentState = ApartmentState.STA;
if(send.ApartmentState == ApartmentState.STA)
{
  // single-threaded apartment set :o
  send.Start();   
}
Avatar billede sovsekoder Nybegynder
23. december 2005 - 22:50 #4
...STA, det er det de unge vil ha'
Avatar billede mr-kill Nybegynder
23. december 2005 - 22:58 #5
Super lige det jeg skulle bruge

Læg et svar så for du point :)
Avatar billede sovsekoder Nybegynder
24. december 2005 - 00:56 #6
yo- et svar
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