module1.vb

来自「适合VB初学者看」· VB 代码 · 共 52 行

VB
52
字号
Imports System
Imports System.Threading
Module Module1
    Sub Main()
        '创建类Class1的对象
        Dim theClass As class1
        theClass = New class1()
        '构造两个线程对象
        Dim threadOne As Thread
        Dim threadTwo As Thread
        threadOne = New Thread(AddressOf theClass.PrintOddNumber)
        threadTwo = New Thread(AddressOf theClass.PrintEvenNumber)
        Console.WriteLine("按 q 键退出主线程循环")
        '启动线程
        threadOne.Start()
        threadTwo.Start()
        If Console.ReadLine() = "q" Then
            End
        End If
    End Sub
    Public Class class1
        '显示奇数
        Public Sub PrintOddNumber()
            Dim i As Integer
            Monitor.Enter(Me)
            For i = 1 To 9 Step 2
                'FOR循环一开始就进入等待状态,
                '也就是等待别的线程调用Pulse或PulseAll
                Monitor.Wait(Me)
                '输出一个奇数
                Console.WriteLine(i)
                '让处于等待的线程进入就绪状态
                Monitor.Pulse(Me)
            Next
            Monitor.Exit(Me)
        End Sub
        '显示偶数
        Public Sub PrintEvenNumber()
            Dim i As Integer
            Monitor.Enter(Me)
            For i = 0 To 9 Step 2
                '输出一个奇数
                Console.WriteLine(i)
                '让处于等待的线程进入就绪状态
                Monitor.Pulse(Me)
                '自己处于等待状态
                Monitor.Wait(Me)
            Next
            Monitor.Exit(Me)
        End Sub
    End Class
End Module

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?