Práce s vlákny   zodpovězená otázka

VB.NET, Threading

Dobrý den,začal jsem se učit pracovat s více vlákny. Umím spustit proceduru v novém vlákně pomoci:

Dim noveVlakno as New Threading.Thread(AddressOf spoustenaProcedure)
noveVlakno.name="Druhé vlákno"
noveVlakno.start()

ale narazil jsem na problém pokud například chci aktualizovat label na formulái abych uživatele o něčem informoval. Dozvěděl jsem se že toto lze uděla pouze z hlavního vlákna. V příspěvku o kreslící tabuli jsem se dozvěděl že pro přechod z jednoho vlákna do druhého se používá invoke, ale bohužel se mi to nepodařilo rozchodit. Mužete mi prosím poradit jak lze z mnou vytvořeného vlákna zavolat hlavní vlákno abych mohl změnit něco na formuláři? Děkuji:)

btw: Neplánujete o této problematice napsat článek? (pokud tu něco takového je zřejmě jsem špatně hledal a omlouvám se)

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Taková článek tu opravdu k dnešnímu datu neni. Objasnit takovou problematiku je celkem velký kus práce.

Pokud jde o Váš problém, tak bohužel nevím co nechodí. Základ je popsán v mém článku o kreslící tabuli. Pokud to podle toho nefunguje, napište prosím kód.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Zdravim, taky jsem tenhle problem resil...

tohle by Vam melo fungovat

    Private Delegate Sub spoustenaProcedureCallback()

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim noveVlakno As New Threading.Thread(AddressOf spoustenaProcedure)
        noveVlakno.Name = "Druhé vlákno"
        noveVlakno.Start()
    End Sub

    Private Sub spoustenaProcedure()
        If InvokeRequired Then
            BeginInvoke(New spoustenaProcedureCallback(AddressOf spoustenaProcedure))
        Else
            Label1.Text = "OK"
            .
            .
            .
        End If
    End Sub

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

No jo no, článek na téma vlákna by se hodil :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Súhlasím ale to je téma aj na dlhší seriál..... :-))

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback