Rumah >pembangunan bahagian belakang >C++ >Task.Start(), Task.Run(), atau Task.Factory.StartNew(): Kaedah .NET Yang Mana Perlu Saya Gunakan?
.NET Parallel Tasks: Perbandingan Task.Start(), Task.Run() dan Task.Factory.StartNew()
Dalam .NET Threads and Parallel Library (TPL), pembangun sering menghadapi tiga kaedah untuk melaksanakan tugas secara tidak segerak: Task.Start()
, Task.Run()
dan Task.Factory.StartNew()
. Walaupun kedua-duanya menyasarkan untuk melaksanakan tugas secara tidak segerak, nuansa dan senario yang boleh digunakan adalah agak berbeza.
Task.Start()
, Task.Run()
dan Task.Factory.StartNew()
Task.Start()
ialah kaedah paling asas Anda perlu memanggil kaedah Start()
secara eksplisit untuk memulakan tugas selepas tugasan dibuat. Kaedah ini mudah dan mudah, tetapi tidak mempunyai keselamatan dan pilihan yang ditawarkan oleh kaedah lain.
Task.Run()
(diperkenalkan sejak .NET 4.5) menyediakan sintaks ringkas untuk melancarkan tugas, dengan tetapan prakonfigurasi sesuai untuk kebanyakan senario biasa. Ia memanggil Task.Factory.StartNew()
secara dalaman dengan parameter yang dioptimumkan termasuk pembatalan, menghalang penambahan dan penjadualan lalai.
Task.Factory.StartNew()
ialah kaedah paling komprehensif dalam TPL, membenarkan kawalan terperinci ke atas penciptaan tugas. Pembangun boleh menyesuaikan penjadualan, pembatalan, dasar lampiran dan pilihan penciptaan tugas.
Pilih kaedah yang sesuai
Kaedah yang manakah untuk dipilih bergantung pada senario tertentu:
Task.Run()
ialah pilihan yang disyorkan, ia mudah digunakan dan tetapan dioptimumkan. Task.Factory.StartNew()
menyediakan fleksibiliti yang diperlukan. Task.Start()
harus dielakkan melainkan diperlukan oleh keadaan khas, seperti senario di mana penciptaan tugas dan penjadualan diasingkan dengan sengaja. Kesimpulan
Task.Start()
, Task.Run()
dan Task.Factory.StartNew()
, walaupun fungsinya serupa, mempunyai ciri dan senario penggunaan yang berbeza yang menjadikannya penting untuk memahami nuansanya. Dengan memilih pendekatan yang betul berdasarkan tugas, pembangun boleh memanfaatkan kuasa TPL untuk mencipta aplikasi yang cekap dan responsif.
Atas ialah kandungan terperinci Task.Start(), Task.Run(), atau Task.Factory.StartNew(): Kaedah .NET Yang Mana Perlu Saya Gunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!