VB.Net by API/System.Threading/Thread
Содержание
Thread.Abort()
  
Imports System
Imports System.Drawing
Imports System.Threading
Imports System.Windows.Forms
Imports System.IO
public class MainClass
   Shared Sub Main()
        Dim Thrd As Thread
        Dim TStart As New ThreadStart(AddressOf BusyThread)
        Thrd = New Thread(TStart)
        Thrd.Priority = ThreadPriority.Highest
        Thrd.Start()
        Console.WriteLine(Thrd.ThreadState.ToString("G"))
        Console.WriteLine("Thrd.IsAlive " & Thrd.IsAlive)
        If Thrd.IsAlive Then
            Thrd.Abort()
            Thrd.Join()
        End If
   End Sub
   Shared Sub BusyThread()
        While True
            "Console.Write("thread ")
        End While
    End Sub
End Class
Thread.CurrentPrincipal
  
 
Imports System.Threading
Module Module1
    Sub Main()
        Dim objThread As Thread
        objThread = Thread.CurrentThread
        With objThread
            Console.WriteLine("Apartment State: {0}", .ApartmentState)
            Console.WriteLine("Current Context: {0}", .CurrentContext)
            Console.WriteLine("Current Culture: {0}", .CurrentCulture)
            Console.WriteLine("Current Principal: {0}", .CurrentPrincipal)
            Console.WriteLine("Current Thread: {0}", .CurrentThread)
            Console.WriteLine("Current UI Culture: {0}", .CurrentUICulture)
            Console.WriteLine("Is Alive: {0}", .IsAlive)
            Console.WriteLine("Is Background: {0}", .IsBackground)
            Console.WriteLine("Is Thread Pool Thread: {0}", .IsThreadPoolThread)
            Console.WriteLine("Name: {0}", .Name)
            Console.WriteLine("Priority: {0}", .Priority)
            Console.WriteLine("Thread State: {0}", .ThreadState)
        End With
    End Sub
End Module
Thread.CurrentThread
  
Imports System
Imports System.Data
Imports System.Globalization
Imports System.Threading
public class Test
   public Shared Sub Main
        Thread.CurrentThread.CurrentCulture = New CultureInfo("de-DE")
        Thread.CurrentThread.CurrentUICulture = New CultureInfo("de-DE")
   End Sub
End class
Thread.IsAlive
  
Imports System
Imports System.Drawing
Imports System.Threading
Imports System.Windows.Forms
Imports System.IO
public class MainClass
   Shared Sub Main()
        Dim Thrd As Thread
        Dim TStart As New ThreadStart(AddressOf BusyThread)
        Thrd = New Thread(TStart)
        Thrd.Priority = ThreadPriority.Highest
        Thrd.Start()
        Console.WriteLine(Thrd.ThreadState.ToString("G"))
        Console.WriteLine("Thrd.IsAlive " & Thrd.IsAlive)
        If Thrd.IsAlive Then
            Thrd.Abort()
            Thrd.Join()
        End If
   End Sub
   Shared Sub BusyThread()
        While True
            "Console.Write("thread ")
        End While
    End Sub
End Class
Thread.Join()
  
Imports System
Imports System.Drawing
Imports System.Threading
Imports System.Windows.Forms
Imports System.IO
public class MainClass
   Shared Sub Main()
        Dim Thrd As Thread
        Dim TStart As New ThreadStart(AddressOf BusyThread)
        Thrd = New Thread(TStart)
        Thrd.Priority = ThreadPriority.Highest
        Thrd.Start()
        Console.WriteLine(Thrd.ThreadState.ToString("G"))
        Console.WriteLine("Thrd.IsAlive " & Thrd.IsAlive)
        If Thrd.IsAlive Then
            Thrd.Abort()
            Thrd.Join()
        End If
   End Sub
   Shared Sub BusyThread()
        While True
            "Console.Write("thread ")
        End While
    End Sub
End Class
Thread.Resume
  
Imports System.Threading
Module Module1
    Public A As Thread = New Thread(AddressOf MethodA)
    Public B As Thread = New Thread(AddressOf MethodB)
    Public C As Thread = New Thread(AddressOf MethodC)
    Sub MethodA()
        Dim I As Integer
        Try
            A.Suspend()
            For I = 0 To 250
                Console.Write("A")
            Next
        Catch E As ThreadStateException
            Console.WriteLine("Thread A Expection" & E.ToString())
        End Try
    End Sub
    Sub MethodB()
        Dim I As Integer
        Try
            For I = 0 To 250
                Console.Write("B")
            Next
        Catch E As ThreadAbortException
            Console.Write("Thread B has been aborted")
        End Try
    End Sub
    Sub MethodC()
        Dim I As Integer
        Try
            If (B.IsAlive) Then
                B.Abort()
            End If
            For I = 0 To 250
                If (A.ThreadState = ThreadState.Suspended) Then
                    A.Resume()
                End If
                Console.Write("C")
            Next
        Catch E As Threading.ThreadStateException
            Console.WriteLine("Thread C Expection" & E.ToString())
        End Try
    End Sub
    Sub Main()
        A.Start()
        B.Start()
        C.Start()
    End Sub
End Module
Thread.Sleep
  
 
Imports System.Threading
Module Module1
    Sub TaskA()
        Dim I As Integer
        Thread.Sleep(1000)
        For I = 0 To 250
            System.Console.Write("A")
        Next
    End Sub
    Sub TaskB()
        Dim I As Integer
        Thread.Sleep(500)
        For I = 0 To 250
            System.Console.Write("B")
        Next
    End Sub
    Sub TaskC()
        Dim I As Integer
        Thread.Sleep(100)
        For I = 0 To 250
            System.Console.Write("C")
        Next
    End Sub
    Sub Main()
        Dim A As Thread  = New Thread(AddressOf TaskA)
        Dim B As Thread  = New Thread(AddressOf TaskB)
        Dim C As Thread  = New Thread(AddressOf TaskC)
        A.Start()
        B.Start()
        C.Start()
    End Sub
End Module
Thread.Suspend
  
Imports System.Threading
Module Module1
    Public A As Thread = New Thread(AddressOf MethodA)
    Public B As Thread = New Thread(AddressOf MethodB)
    Public C As Thread = New Thread(AddressOf MethodC)
    Sub MethodA()
        Dim I As Integer
        Try
            A.Suspend()
            For I = 0 To 250
                Console.Write("A")
            Next
        Catch E As ThreadStateException
            Console.WriteLine("Thread A Expection" & E.ToString())
        End Try
    End Sub
    Sub MethodB()
        Dim I As Integer
        Try
            For I = 0 To 250
                Console.Write("B")
            Next
        Catch E As ThreadAbortException
            Console.Write("Thread B has been aborted")
        End Try
    End Sub
    Sub MethodC()
        Dim I As Integer
        Try
            If (B.IsAlive) Then
                B.Abort()
            End If
            For I = 0 To 250
                If (A.ThreadState = ThreadState.Suspended) Then
                    A.Resume()
                End If
                Console.Write("C")
            Next
        Catch E As Threading.ThreadStateException
            Console.WriteLine("Thread C Expection" & E.ToString())
        End Try
    End Sub
    Sub Main()
        A.Start()
        B.Start()
        C.Start()
    End Sub
End Module