วิธีการสร้างเธรดใน Visual Basic .NET หรือ Visual Basic 2005

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 315577 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความนี้อธิบายวิธีการสร้างเธรดในโปรแกรมประยุกต์ Microsoft Visual Basic .NET หรือ Microsoft Visual Basic 2005 Windows กระบวนการSystem.Threadingnamespace แสดงระดับชั้นที่คุณต้องมีการทำงานกับเธรด

ความต้องการ

รายการต่อไปนี้แสดงฮาร์ดแวร์ที่แนะนำ ซอฟต์แวร์ โครงสร้างพื้นฐานของเครือข่าย และ service pack ที่คุณต้องการ:
  • Microsoft Windows 2000 หรือ Microsoft Windows XP
  • Microsoft Visual Basic .NET หรือ Microsoft Visual Basic 2005
บทความนี้อนุมานว่า คุณไม่คุ้นเคยกับหัวข้อต่อไปนี้:
  • การเขียนโปรแกรม.NET visual Basic หรือเขียนโปรแกรม Visual Basic 2005
  • visual Studio .NET หรือสภาพแวด Visual Studio 2005 พัฒนารวมล้อม (IDE)
  • familiarity ทั่วไป มีผู้รับมอบสิทธิ์และเธรด
  • familiarity ทั่วไปเกี่ยวกับ Visual Basic .NET หรือ Visual Basic 2005

สร้างโปรแกรมประยุกต์ Visual Basic .NET หรือ Visual Basic 2005 กับเธรด

  1. เริ่ม Microsoft Visual Studio .NET หรือ Microsoft Visual Studio 2005
  2. สร้างโครงการการแอพลิเคชัน Windows Visual Basic ใหม่ที่ชื่อว่า ThreadWinApp
  3. เพิ่มคำปุ่มควบคุมไปยังแบบฟอร์ม ชื่อปุ่มbutton1โดยค่าเริ่มต้น
  4. เพิ่มคำProgressBarคอมโพเนนต์ให้กับฟอร์ม ชื่อแถบความคืบหน้าProgressBar1โดยค่าเริ่มต้น
  5. คลิกขวาที่รูปแบบ และจากนั้น คลิกรหัสของมุมมอง.
  6. เพิ่มคำสั่งต่อไปนี้เพื่อเริ่มต้นของแฟ้ม:
    Imports System.Threading
    					
  7. เพิ่มต่อไปนี้คลิกตัวจัดการเหตุการณ์สำหรับ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
    					
  8. เพิ่มตัวแปรต่อไปนี้เพื่อform1คลาส:
    Private trd As Thread
    					
  9. เพิ่มวิธีการต่อไปนี้ไป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
    						
    หมายเหตุ:: นี่คือรหัสที่ underlies เธรด รหัสนี้เป็นลูป infinite ที่เพิ่มโดยการสุ่มหรือ decrements ค่าในProgressBar1และรอมิลลิวินาที 100 แล้ว ก่อนที่จะดำเนินต่อ
  10. เพิ่มต่อไปนี้การโหลดตัวจัดการเหตุการณ์สำหรับ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
    					

ตรวจสอบการทำให้ งาน

  1. สร้าง และเรียกใช้โปรแกรมประยุกต์ ขอให้สังเกตว่า ค่าในแถบความคืบหน้าการเปลี่ยนแปลงแบบสุ่ม เธรดใหม่ในการดำเนินงานอยู่
  2. การสาธิตเธรดหลักให้จะขึ้นอยู่กับเธรดที่เปลี่ยนแปลงนั้นProgressBarค่า คลิกปุ่มบนแบบฟอร์ม กล่องข้อความแสดงข้อความต่อไปนี้:
    This is the main thread
    							
    กำลังรอให้ป้อนข้อมูล ขอให้สังเกตว่า ค่าในแถบความคืบหน้ายังคงมีอยู่เพื่อเปลี่ยนแปลง

การแก้ไขปัญหา

ในโปรแกรมประยุกต์ที่ซับซ้อนมาก ตรวจสอบให้แน่ใจว่า คุณซิงโครไนส์หลายเธรดเมื่อคุณเข้าถึงตัวแปรที่ใช้ร่วมกัน สำหรับข้อมูลเพิ่มเติม โปรดไปSyncLockงบดุลและหัวข้อที่เกี่ยวข้องในเอกสารวิธีใช้แบบออนไลน์ของ Visual Basic

คุณสมบัติ

หมายเลขบทความ (Article ID): 315577 - รีวิวครั้งสุดท้าย: 13 มกราคม 2554 - Revision: 4.0
ใช้กับ
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Keywords: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315577 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:315577

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com