Jen velmi stručně a úplně základní použití, vydalo by to opět na celý článek, který také někdy v budoucnu hodlám napsat.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'stáhnout soubor v jiném vlákně
System.Threading.ThreadPool.QueueUserWorkItem(AddressOf OperaceVJinemVlakne, "http://www.google.cz")
End Sub
Public Sub OperaceVJinemVlakne(ByVal adresa As Object)
'operace, která probíhá v jiném vlákně
Dim soubor As String = "c:\index.txt"
My.Computer.Network.DownloadFile(adresa.ToString(), soubor, "", "", False, 5000, True)
'otevřít stažený soubor v notepadu
System.Diagnostics.Process.Start(soubor)
End Sub
Tento příklad stáhne úvodní stránku serveru Google.com do textového souboru a zobrazí ji v poznámkovém bloku. Stažení chvíli trvá, ale pokud máte rychlejší linku, asi to nezaznamenáte. Základní princip spočívá v tom, že zavoláte System.Threading.ThreadPool.QueueUserWorkItem a předáte jí adresu procedury (přes klíčové slovo AddressOf) a pokud chcete, tak i parametr (jakéhokoliv typu). Tento příklad je opravdu velmi jednoduchý, nemáte možnost kontrolovat, zda-li už akce skončila, z jiného vlákna také nelze přistupovat na prvky formuláře, muselo by se to dělat přes Invoke atd. V dohledné době se dočkáte článku, jakmile na to budu mít čas.
|