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
Mary-Kate Olsenasal
2025-01-12 08:58:41666semak imbas

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!

Kenyataan:
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