Avatar billede ggxdg Nybegynder
05. maj 2013 - 21:45 Der er 1 kommentar og
1 løsning

Form kontrol på UI thread

Jeg er ret ny til alt det her multithreading, og har læst lidt forskellige steder.

Jeg er ved at skrive et program til et apparat der kommunikerer via seriel port.

Responsen fra serielporten, kommer typisk på en anden thread end UI-threaden. Da jeg alt efter hvad den svarer på, skal lave en del forskellig manipulation med nogle form-controls, vil jeg høre hvilken måde i mener er bedst.


Private context As System.Threading.SynchronizationContext = System.Windows.Forms.WindowsFormsSynchronizationContext.Current

har fanget mig lidt, fordi jeg umiddelbart tror at den kan spare en masse kode, men jeg kan ikke rigtigt finde nogen VB eksempler hvor de bruger den, og jeg kan ikke helt gennemskue brugen af
context.Send(Function...
Avatar billede ggxdg Nybegynder
05. maj 2013 - 21:54 #1
En oversættelse af flg. til VB:
SynchronizationContext context = SynchronizationContext.Current;

// Later on
private void SetButton(Button button, string label)
{
    context.Send(delegate
        {
            button.Text = label;
        }, null);
}
ville faktisk gøre mig uhyggeligt glad :)

Ovenstående er stjålet fra:
http://stackoverflow.com/questions/581405/what-is-the-easiest-way-to-do-cross-thread-winforms-stuff
Avatar billede ggxdg Nybegynder
07. maj 2013 - 14:30 #2
Jeg fandt en del ekstra svar på:
http://stackoverflow.com/questions/4998734/vb-net-two-different-approaches-to-generic-cross-threaded-operations-which-is-b

Og så skulle dette spørgsmål have lagt under VB .NET
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