Rumah > pembangunan bahagian belakang > C++ > Task.Run() vs. Task.Factory.StartNew(): Bilakah Saya Perlu Menggunakan Yang Mana?

Task.Run() vs. Task.Factory.StartNew(): Bilakah Saya Perlu Menggunakan Yang Mana?

Barbara Streisand
Lepaskan: 2025-01-12 08:40:42
asal
955 orang telah melayarinya

Task.Run() vs. Task.Factory.StartNew(): When Should I Use Which?

.Penciptaan Tugasan BERSIH: Task.Run() lwn. Task.Factory.StartNew()

Kelas Task rangka kerja .NET memudahkan pengaturcaraan tak segerak. Walaupun Task.Factory.StartNew() telah lama menjadi standard untuk mencipta tugasan baharu, Task.Run() menawarkan alternatif yang lebih mudah. Artikel ini menjelaskan perbezaan dan membimbing anda dalam memilih kaedah yang sesuai.

Task.Run(): Kesederhanaan untuk Tugasan Setiap Hari

Task.Run() memperkemas penciptaan tugas, sesuai untuk senario di mana tetapan lalai sudah memadai. Kemudahan penggunaannya menjadikannya sempurna untuk operasi tak segerak yang tidak rumit.

Task.Factory.StartNew(): Kawalan dan Penyesuaian Lanjutan

Task.Factory.StartNew() menawarkan kawalan terperinci ke atas tingkah laku tugas, membenarkan penyesuaian:

  • Token Pembatalan: Mendayakan pembatalan tugas.
  • TaskCreationOptions: Mengurus sifat tugas, seperti menggunakan urutan khusus (mis., LongRunning).
  • TaskScheduler: Menentukan penjadual urutan untuk pelaksanaan tugas.

Bila Gunakan Yang Mana?

Untuk tugasan mudah tanpa keperluan khas, Task.Run() ialah pilihan yang lebih ringkas. Walau bagaimanapun, untuk senario kompleks yang menuntut kawalan yang terperinci, Task.Factory.StartNew() menyediakan fleksibiliti yang diperlukan.

Contoh Ilustrasi: Operasi Jangka Panjang

Andaikan anda memerlukan tugasan berpanjangan yang tidak sepatutnya menggunakan benang kumpulan benang. Task.Run() tidak membenarkan ini. Task.Factory.StartNew(), bagaimanapun, membenarkan ini melalui pilihan LongRunning:

<code class="language-csharp">Task.Factory.StartNew(..., TaskCreationOptions.LongRunning);</code>
Salin selepas log masuk

Ringkasan

Task.Run() memudahkan permulaan tugas, manakala Task.Factory.StartNew() menawarkan kawalan yang lebih baik. Memahami perbezaan mereka adalah kunci untuk menulis kod tak segerak yang cekap dan boleh disesuaikan. Pilih kaedah yang paling sesuai dengan keperluan pengaturcaraan tak segerak khusus anda.

Atas ialah kandungan terperinci Task.Run() vs. Task.Factory.StartNew(): Bilakah Saya Perlu Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan