Αυτό το άρθρο περιγράφει τον τρόπο δημιουργίας νημάτων σε Microsoft Visual Basic.Εφαρμογή NET ή Windows 2005 Microsoft Visual Basic. Το
System.Threading χώρος ονομάτων παρέχει κλάσεις που πρέπει να έχετε για να εργαστείτε με νήματα.
Απαιτήσεις
Η ακόλουθη λίστα περιγράφει το υλικού που συνιστώνται, λογισμικό, υποδομή δικτύου και τα service pack που χρειάζεστε:
- Microsoft Windows 2000 ή Microsoft Windows XP
- Η Microsoft Visual Basic.NET ή Microsoft Visual Basic 2005
Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τα ακόλουθα θέματα:
- Visual Basic.NET προγραμματισμού ή προγραμματισμού Visual Basic 2005
- Visual Studio.NET ή Visual Studio 2005 ολοκληρωμένο περιβάλλον ανάπτυξης (IDE)
- Γενικά εξοικείωση με πληρεξούσιοι και νημάτων
- Γενικά εξοικείωση με τη Visual Basic.NET ή Visual Basic 2005
Δημιουργήστε μια Visual Basic.Εφαρμογή NET ή 2005 Visual Basic με νήματα
- Ξεκινήστε το Microsoft Visual Studio.NET ή το Microsoft Visual Studio 2005.
- Δημιουργήστε ένα νέο έργο εφαρμογών των Windows Visual Basic με το όνομα ThreadWinApp.
- Προσθέστε ένα Κουμπί Έλεγχος της φόρμας. Το κουμπί ονομάζεται Button1 από προεπιλογή.
- Προσθέστε ένα ProgressBar το στοιχείο στη φόρμα. Ονομάζεται γραμμή προόδου ProgressBar1 από προεπιλογή.
- Κάντε δεξιό κλικ στη φόρμα και, στη συνέχεια, κάντε κλικ στο κουμπί Προβολή κώδικα.
- Προσθέστε την ακόλουθη πρόταση στην αρχή του αρχείου:
- Προσθέστε το ακόλουθο Κάντε κλικ στο κουμπί το πρόγραμμα χειρισμού συμβάντων για 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
- Προσθέστε την ακόλουθη μεταβλητή για να το Φόρμα1 (Form1) Κλάση:
- Προσθέστε την ακόλουθη μέθοδο για την Φόρμα1 (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
ΣΗΜΕΊΩΣΗ: Αυτός είναι ο κωδικός που είναι υποκείμενος στο νήμα. Αυτός ο κωδικός είναι ατέρμονα βρόχο που τυχαία αυξάνεται ή μειώνεται η τιμή ProgressBar1 και στη συνέχεια να περιμένει 100 χιλιοστά του δευτερολέπτου πριν συνεχίζει. - Προσθέστε το ακόλουθο Φόρτωση το πρόγραμμα χειρισμού συμβάντων για Φόρμα1 (Form1). Αυτός ο κώδικας δημιουργεί ένα νέο νήμα, καθιστά το νήμα ένα νήμα παρασκηνίου και στη συνέχεια να ξεκινήσει το νήμα.
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
Βεβαιωθείτε ότι λειτουργεί
- Δημιουργήστε και εκτελέστε την εφαρμογή. Σημειώστε ότι η τιμή στη γραμμή προόδου αλλάζει τυχαία. Αυτό είναι το νέο νήμα λειτουργία.
- Να είναι ανεξάρτητο από το νήμα που αλλάζει το κύριο νήμα της ProgressBar τιμή, κάντε κλικ στο κουμπί της φόρμας. Ένα πλαίσιο μηνύματος εμφανίζει το εξής μήνυμα:Αναμονή για εισαγωγή. Σημειώστε ότι η τιμή στη γραμμή προόδου συνεχίζει να αλλάζει.
Αντιμετώπιση προβλημάτων
Σε πιο σύνθετες εφαρμογές, βεβαιωθείτε ότι το συγχρονισμό πολλών νημάτων κατά την πρόσβαση σε κοινόχρηστο μεταβλητές. Για περισσότερες πληροφορίες, ανατρέξτε το
SyncLock δήλωση και τα σχετικά θέματα τεκμηρίωσης ηλεκτρονική Βοήθεια της Visual Basic.
Αναγν. άρθρου: 315577 - Τελευταία αναθεώρηση: Κυριακή, 29 Μαΐου 2011 - Αναθεώρηση: 4.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
- Microsoft Visual Basic 2005
- Microsoft Visual Basic .NET 2003 Standard Edition
- Microsoft Visual Basic .NET 2002 Standard Edition
| kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315577 KbMtel |
Μηχανικά μεταφρασμένοΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:
315577
(http://support.microsoft.com/kb/315577/en-us/
)