Task.Start Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.