void Start();
public void Start ();
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public void Start ();
member this.Start : unit -> unit
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.Start : unit -> unit
Public Sub Start ()
UnsupportedOSPlatformAttribute ThreadStart^ myThreadDelegate = gcnew ThreadStart(&ThreadWork::DoWork); Thread^ thread1 = gcnew Thread( myThreadDelegate ); thread1->Start(); for ( int i = 0; i < 3; i++ ) Console::WriteLine( "In main." ); Thread::Sleep( 100 ); // The example displays output like the following: // In main. // Working thread... // In main. // Working thread... // In main. // Working thread... using System; using System.Threading; public class ThreadWork public static void DoWork() for(int i = 0; i<3;i++) { Console.WriteLine("Working thread..."); Thread.Sleep(100); class ThreadTest public static void Main() Thread thread1 = new Thread(ThreadWork.DoWork); thread1.Start(); for (int i = 0; i<3; i++) { Console.WriteLine("In main."); Thread.Sleep(100); // The example displays output like the following: // In main. // Working thread... // In main. // Working thread... // In main. // Working thread... open System.Threading module ThreadWork = let doWork () = for _ = 0 to 2 do printfn "Working thread..." Thread.Sleep 100 let thread1 = Thread ThreadWork.doWork thread1.Start() for _ = 0 to 2 do printfn "In main." Thread.Sleep 100 // The example displays output like the following: // In main. // Working thread... // In main. // Working thread... // In main. // Working thread... Imports System.Threading Public Class ThreadWork Public Shared Sub DoWork() Dim i As Integer For i = 0 To 2 Console.WriteLine("Working thread...") Thread.Sleep(100) Next i End Sub End Class Class ThreadTest Public Shared Sub Main() Dim thread1 As New Thread(AddressOf ThreadWork.DoWork) thread1.Start() Dim i As Integer For i = 0 To 2 Console.WriteLine("In main.") Thread.Sleep(100) End Sub End Class ' The example displays output like the following: ' In main. ' Working thread... ' In main. ' Working thread... ' In main. ' Working thread...

一旦執行緒處於 ThreadState.Running 狀態,作業系統就可以將它排程為執行。 執行緒會在提供給執行緒建構函式的 或 ParameterizedThreadStart 委派所 ThreadStart 表示的方法第一行開始執行。 請注意,呼叫 Start 不會封鎖呼叫執行緒。

如果此多載與使用 ParameterizedThreadStart 委派建立的執行緒搭配使用, null 則會傳遞至執行緒所執行的方法。

執行緒終止之後,就無法以另一個 呼叫 Start 重新開機。

void Start(System::Object ^ parameter);
public void Start (object? parameter);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public void Start (object? parameter);
public void Start (object parameter);
member this.Start : obj -> unit
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.Start : obj -> unit
Public Sub Start (parameter As Object)
// Start a thread that calls a parameterized static method. Thread^ newThread = gcnew Thread(gcnew ParameterizedThreadStart(Work::DoWork)); newThread->Start(42); // Start a thread that calls a parameterized instance method. Work^ someWork = gcnew Work; newThread = gcnew Thread( gcnew ParameterizedThreadStart(someWork, &Work::DoMoreWork)); newThread->Start("The answer."); static void DoWork(Object^ data) Console::WriteLine("Static thread procedure. Data='{0}'", data); void DoMoreWork(Object^ data) Console::WriteLine("Instance thread procedure. Data='{0}'", data); //Entry point of example application int main() SystemThreadingExample::Work^ samplework = gcnew SystemThreadingExample::Work(); samplework->StartThreads(); // This example displays output like the following: // Static thread procedure. Data='42' // Instance thread procedure. Data='The answer.' using System; using System.Threading; public class Work public static void Main() // Start a thread that calls a parameterized static method. Thread newThread = new Thread(Work.DoWork); newThread.Start(42); // Start a thread that calls a parameterized instance method. Work w = new Work(); newThread = new Thread(w.DoMoreWork); newThread.Start("The answer."); public static void DoWork(object data) Console.WriteLine("Static thread procedure. Data='{0}'", data); public void DoMoreWork(object data) Console.WriteLine("Instance thread procedure. Data='{0}'", data); // This example displays output like the following: // Static thread procedure. Data='42' // Instance thread procedure. Data='The answer.' open System.Threading type Work() = static member DoWork(data: obj) = printfn $"Static thread procedure. Data='{data}'" member _.DoMoreWork(data: obj) = printfn $"Instance thread procedure. Data='{data}'" // Start a thread that calls a parameterized static method. let newThread = Thread(ParameterizedThreadStart Work.DoWork) newThread.Start 42 // Start a thread that calls a parameterized instance method. let w = Work() let newThread2 = Thread(ParameterizedThreadStart w.DoMoreWork) newThread.Start "The answer." // This example displays output like the following: // Static thread procedure. Data='42' // Instance thread procedure. Data='The answer.' Imports System.Threading Public Class Work Shared Sub Main() ' Start a thread that calls a parameterized static method. Dim newThread As New Thread(AddressOf Work.DoWork) newThread.Start(42) ' Start a thread that calls a parameterized instance method. Dim w As New Work() newThread = New Thread(AddressOf w.DoMoreWork) newThread.Start("The answer.") End Sub Public Shared Sub DoWork(ByVal data As Object) Console.WriteLine("Static thread procedure. Data='{0}'", data) End Sub Public Sub DoMoreWork(ByVal data As Object) Console.WriteLine("Instance thread procedure. Data='{0}'", data) End Sub End Class ' This example displays output like the following: ' Static thread procedure. Data='42' ' Instance thread procedure. Data='The answer.'

一旦執行緒處於 ThreadState.Running 狀態,作業系統就可以將它排程為執行。 執行緒會在提供給執行緒建構函式的 或 ParameterizedThreadStart 委派所 ThreadStart 表示的方法第一行開始執行。 請注意,呼叫 Start 不會封鎖呼叫執行緒。

執行緒終止之後,就無法以另一個 呼叫 Start 重新開機。

此多載和 ParameterizedThreadStart 委派可讓您輕鬆地將資料傳遞至執行緒程式,但技術的類型並不安全,因為任何物件都可以傳遞至這個多載。 將資料傳遞至執行緒程式的更健全方式,就是將執行緒程式和資料欄位放入背景工作物件。 如需詳細資訊,請參閱 在開始時間建立執行緒和傳遞資料