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

Task.Run() vs. Task.Factory.StartNew(): Bilakah Anda Harus Menggunakan Yang Mana?

Mary-Kate Olsen
Lepaskan: 2025-01-12 08:58:41
asal
665 orang telah melayarinya

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

pengaturcaraan tak segerak .NET: Perbandingan Task.Run() dan Task.Factory.StartNew()

Dalam pengaturcaraan tak segerak .NET, selalunya perlu untuk mencipta dan memulakan tugas baharu. Untuk tujuan ini, rangka kerja .NET menyediakan dua kaedah yang biasa digunakan: Task.Run() dan Task.Factory.StartNew(). Walaupun kedua-duanya mencapai matlamat asas yang sama, fungsi dan kes penggunaannya berbeza.

Task.Factory.StartNew()

Task.Factory.StartNew()Lebih kaya ciri, menyediakan berbilang pilihan untuk menyesuaikan gelagat tugas baharu. Beberapa parameter utama yang diterima termasuk:

  • Tindakan/Fungsi: Wakilkan untuk dilaksanakan dalam tugasan baharu.
  • Token Pembatalan: Token pembatalan yang boleh digunakan untuk membatalkan tugas.
  • TaskCreationOptions: Satu set pilihan yang mengawal gelagat tugas, seperti pilihan penciptaan dan penjadualnya.
  • Penjadual Tugas: Penjadual yang akan melaksanakan tugas.

Fleksibiliti ini membolehkan anda menyesuaikan tugas dengan keperluan khusus anda, seperti membuat tugasan yang berjalan lama atau melaksanakan tugas pada urutan tertentu.

Task.Run()

Task.Run() ialah versi ringkas Task.Factory.StartNew() yang diperkenalkan dalam .NET 4.5. Ia menyediakan konfigurasi lalai untuk tugasan baharu, menggunakan tetapan berikut:

  • Token Pembatalan.Tiada: Tidak menggunakan token pembatalan.
  • TaskCreationOptions.DenyChildAttach: Subtugas yang dibuat oleh tugasan baharu tidak boleh dilampirkan pada tugasan asal.
  • TaskScheduler.Default: Tugas akan dijalankan pada penjadual tugas lalai, biasanya menggunakan kumpulan benang.

ialah pilihan yang mudah apabila anda tidak memerlukan sebarang penyesuaian khas dan hanya gunakan tetapan lalai untuk memulakan tugas baharu dengan pantas. Task.Run()

Bila hendak menggunakan Task.Run() vs. Task.Factory.StartNew()

Secara umum, gunakan

apabila anda perlu menyesuaikan gelagat tugas baharu. Ini termasuk senario berikut: Task.Factory.StartNew()

    Buat tugasan yang berjalan lama
  • Nyatakan dasar pembatalan khusus
  • Laksanakan tugasan pada rangkaian atau kumpulan benang tertentu
Gunakan

apabila anda tidak memerlukan sebarang penyesuaian dan hanya buat tugas baharu dengan tetapan lalai. Task.Run() ialah pintasan yang memudahkan penciptaan tugas tanpa konfigurasi tambahan. Task.Run()

Atas ialah kandungan terperinci Task.Run() vs. Task.Factory.StartNew(): Bilakah Anda Harus 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