Tento článek popisuje vytvoření podprocesů v aplikaci Microsoft Visual Basic .NET nebo Microsoft Visual Basic 2005 Windows. Obor názvů
System.Threading poskytuje tříd, které jsou nutné pro práci s podprocesy.
Požadavky
Následující seznam obsahuje doporučený hardware, software, síťovou infrastrukturu a aktualizace service Pack, které potřebujete:
- Microsoft Windows 2000 nebo Microsoft Windows XP
- Aplikace Microsoft Visual Basic .NET nebo Microsoft Visual Basic 2005
Tento článek předpokládá, že je obeznámen s následující témata vám:
- Programování v jazyce Visual Basic .NET nebo Visual Basic 2005 programování
- Visual Studio .NET nebo Visual Studio 2005 rozvoj integrovaného prostředí (IDE)
- Obecná znalost delegátů a threading
- Obecná znalost jazyka Visual Basic .NET nebo Visual Basic 2005
Vytvoření aplikace Visual Basic .NET nebo Visual Basic 2005 s podprocesy
- Spusťte aplikaci Microsoft Visual Studio .NET nebo Microsoft Visual Studio 2005.
- Vytvoření nového projektu aplikace Visual Basic Windows s názvem ThreadWinApp.
- Do formuláře přidat ovládací prvek tlačítko. Tlačítko je ve výchozím nastavení nazývá Button1.
- Přidání komponenty ProgressBar do formuláře. Indikátor průběhu se ve výchozím nastavení nazývá ProgressBar1.
- Klepněte pravým tlačítkem myši na formulář a potom klepněte na tlačítko Zobrazit kód.
- Přidejte na začátek souboru následující příkaz:
- Přidejte následující obslužné rutině klepnutí pro Button1:
Private Sub Button1_Click( _
ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
MessageBox.Show("This is the main thread")
End Sub
- Přidat do třídy Form1 následující proměnné:
- Přidejte následující metodu třídy Form1:
Private Sub ThreadTask()
Dim stp As Integer
Dim newval As Integer
Dim rnd As New Random()
Do
stp = ProgressBar1.Step * rnd.Next(-1, 2)
newval = ProgressBar1.Value + stp
If newval > ProgressBar1.Maximum Then
newval = ProgressBar1.Maximum
ElseIf newval < ProgressBar1.Minimum Then
newval = ProgressBar1.Minimum
End If
ProgressBar1.Value = newval
Thread.Sleep(100)
Loop
End Sub
Poznámka: Toto je kód podkladovou podprocesu. Tento kód je infinite opakování této přírůstcích náhodně nebo sníží hodnota v ProgressBar1 a poté čeká 100 milisekund, než pokračuje. - Přidejte následující obslužné rutině zatížení pro Form1. Tento kód vytvoří nový podproces provede podprocesu podprocesem na pozadí a potom spustí podprocesu.
Private Sub Form1_Load( _
ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Load
trd = New Thread(AddressOf ThreadTask)
trd.IsBackground = True
trd.Start()
End Sub
Ověřte, zda skutečně pracuje
- Vytvoření a spuštění aplikace. Všimněte si, že hodnoty v indikátoru průběhu změní náhodně. Toto je nový podproces v operaci.
- Chcete-li prokázat, že hlavní podproces je nezávislé na podproces, který změní hodnotu ProgressBar, klepněte na tlačítko ve formuláři. Okno se zprávou se zobrazí následující zprávu: Počkejte, než se pro vstup. Všimněte si, že hodnoty v indikátoru průběhu nadále změnit.
Poradce při potížích
V složitějších aplikací zkontrolujte, zda při přístupu k sdílené proměnné synchronizaci více podprocesů. Další informace naleznete v
SyncLock prohlášení a související témata v dokumentaci k nápovědě online k aplikaci Visual Basic.
ID článku: 315577 - Poslední aktualizace: 6. prosince 2006 - Revize: 4.3
Informace v tomto článku jsou určeny pro produkt:
- Microsoft Visual Basic 2005
- Microsoft Visual Basic .NET 2003 Standard Edition
- Microsoft Visual Basic .NET 2002 Standard Edition
| kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB315577 KbMtcs |
Strojově přeložený článekDůležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:
315577
(http://support.microsoft.com/kb/315577/en-us/
)