Task.Start Metode

Definisi

TaskMemulai .

Overload

Nama Deskripsi
Start()

TaskMemulai , menjadwalkannya untuk eksekusi ke saat ini TaskScheduler.

Start(TaskScheduler)

TaskMemulai , menjadwalkannya untuk eksekusi ke yang ditentukan TaskScheduler.

Start()

Sumber:
Task.cs
Sumber:
Task.cs
Sumber:
Task.cs
Sumber:
Task.cs
Sumber:
Task.cs

TaskMemulai , menjadwalkannya untuk eksekusi ke saat ini TaskScheduler.

public:
 void Start();
public void Start();
member this.Start : unit -> unit
Public Sub Start ()

Pengecualian

Task Instans telah dibuang.

Task tidak dalam status valid untuk dimulai. Mungkin telah dimulai, dijalankan, atau dibatalkan, atau mungkin telah dibuat dengan cara yang tidak mendukung penjadwalan langsung.

Contoh

Contoh berikut memanggil Task(Action) konstruktor untuk membuat instans objek baru Task yang menampilkan ID tugasnya dan ID utas terkelola lalu menjalankan perulangan. Kemudian memanggil Start metode untuk menjalankan tugas. Karena ini adalah aplikasi konsol, panggilan ke Wait metode diperlukan untuk mencegah aplikasi berakhir sebelum tugas selesai dieksekusi.

using System;
using System.Threading;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
      var t = new Task( () => { Console.WriteLine("Task {0} running on thread {1}",
                                                  Task.CurrentId, Thread.CurrentThread.ManagedThreadId);
                                for (int ctr = 1; ctr <= 10; ctr++)
                                   Console.WriteLine("   Iteration {0}", ctr); } 
                        );
      t.Start();
      t.Wait();   
   }
}
// The example displays output like the following:
//     Task 1 running on thread 3
//        Iteration 1
//        Iteration 2
//        Iteration 3
//        Iteration 4
//        Iteration 5
//        Iteration 6
//        Iteration 7
//        Iteration 8
//        Iteration 9
//        Iteration 10
open System.Threading
open System.Threading.Tasks

let t =
    new Task(fun () ->
        printfn $"Task {Task.CurrentId} running on thread {Thread.CurrentThread.ManagedThreadId}"

        for i = 1 to 10 do
            printfn $"   Iteration {i}")

t.Start()
t.Wait() |> ignore

// The example displays output like the following:
//     Task 1 running on thread 3
//        Iteration 1
//        Iteration 2
//        Iteration 3
//        Iteration 4
//        Iteration 5
//        Iteration 6
//        Iteration 7
//        Iteration 8
//        Iteration 9
//        Iteration 10
Imports System.Threading
Imports System.Threading.Tasks

Module Example
   Public Sub Main()
      Dim t As New Task(Sub()
                           Console.WriteLine("Task {0} running on thread {1}",
                                             Task.CurrentId, Thread.CurrentThread.ManagedThreadId )
                           For ctr As Integer = 1 To 10
                              Console.WriteLine("   Iteration {0}", ctr)
                           Next   
                        End Sub)
      t.Start
      t.Wait()   
   End Sub
End Module
' The example displays output like the following:
'     Task 1 running on thread 3
'        Iteration 1
'        Iteration 2
'        Iteration 3
'        Iteration 4
'        Iteration 5
'        Iteration 6
'        Iteration 7
'        Iteration 8
'        Iteration 9
'        Iteration 10

Keterangan

Tugas mungkin dimulai dan dijalankan hanya sekali. Setiap upaya untuk menjadwalkan tugas untuk kedua kalinya akan menghasilkan pengecualian.

Start digunakan untuk menjalankan tugas yang telah dibuat dengan memanggil salah Task satu konstruktor. Biasanya, Anda melakukan ini ketika Anda perlu memisahkan pembuatan tugas dari eksekusinya, seperti ketika Anda menjalankan tugas yang telah Anda buat secara kondisional. Untuk kasus yang lebih umum di mana Anda tidak perlu memisahkan instansiasi tugas dari eksekusi, kami sarankan Anda memanggil kelebihan beban Task.Run metode atau TaskFactory.StartNew .

Untuk informasi tentang menangani pengecualian yang dilemparkan oleh operasi tugas, lihat Penanganan Pengecualian.

Lihat juga

Berlaku untuk

Start(TaskScheduler)

Sumber:
Task.cs
Sumber:
Task.cs
Sumber:
Task.cs
Sumber:
Task.cs
Sumber:
Task.cs

TaskMemulai , menjadwalkannya untuk eksekusi ke yang ditentukan TaskScheduler.

public:
 void Start(System::Threading::Tasks::TaskScheduler ^ scheduler);
public void Start(System.Threading.Tasks.TaskScheduler scheduler);
member this.Start : System.Threading.Tasks.TaskScheduler -> unit
Public Sub Start (scheduler As TaskScheduler)

Parameter

scheduler
TaskScheduler

yang TaskScheduler akan mengaitkan dan menjalankan tugas ini.

Pengecualian

Argumennya scheduler adalah null.

Task tidak dalam status valid untuk dimulai. Mungkin telah dimulai, dijalankan, atau dibatalkan, atau mungkin telah dibuat dengan cara yang tidak mendukung penjadwalan langsung.

Task Instans telah dibuang.

Penjadwal tidak dapat mengantre tugas ini.

Keterangan

Tugas hanya dapat dimulai dan dijalankan hanya sekali. Setiap upaya untuk menjadwalkan tugas untuk kedua kalinya akan menghasilkan pengecualian.

Untuk informasi tentang menangani pengecualian yang dilemparkan oleh operasi tugas, lihat Penanganan Pengecualian.

Lihat juga

Berlaku untuk