Menguruskan Tugas Asynchronous Serentak dalam .NET
Banyak aplikasi .NET memerlukan pemprosesan banyak operasi tak segerak sambil mengehadkan pelaksanaan serentak untuk mengelakkan lebihan sumber. Ini memerlukan mekanisme pendikit. Walaupun penyelesaian tersuai seperti kaedah ThrottleTasksAsync
wujud, Aliran Data Task Parallel Library (TPL) menyediakan alternatif yang lebih elegan dan cekap.
Aliran Data TPL untuk Pendikitan Tugas Asynchronous
TPL Dataflow menawarkan alat terbina dalam untuk mengurus aliran data dan konkurensi. Untuk pendikitan, TransformBlock<TInput, TOutput>
amat berguna. Harta MaxDegreeOfParallelism
nya mengawal secara langsung bilangan maksimum tugasan yang dilaksanakan secara serentak.
Berikut ialah cara untuk melaksanakan pendikitan tugas tak segerak menggunakan TPL Dataflow:
<code class="language-csharp">var downloader = new TransformBlock<string, HttpResponse>( url => Download(url), // Your asynchronous download function new ExecutionDataflowBlockOptions { MaxDegreeOfParallelism = 50 } ); var buffer = new BufferBlock<HttpResponse>(); downloader.LinkTo(buffer); foreach (var url in urls) { downloader.Post(url); } downloader.Complete(); await downloader.Completion; IList<HttpResponse> responses; if (buffer.TryReceiveAll(out responses)) { // Process the downloaded responses }</code>
Coretan kod ini menunjukkan muat turun berbilang URL serentak. TransformBlock
memproses URL (input), memuat turun setiap satu melalui fungsi Download
(operasi tak segerak anda) dan menghasilkan HttpResponse
objek (output). MaxDegreeOfParallelism
mengehadkan muat turun serentak kepada 50. BufferBlock
menyimpan muat turun yang lengkap. Akhirnya, TryReceiveAll
mendapatkan semula semua keputusan selepas selesai.
Faedah Menggunakan TPL Dataflow
TPL Dataflow menawarkan beberapa kelebihan berbanding penyelesaian pendikit tersuai:
MaxDegreeOfParallelism
.Kesimpulan
Walaupun kaedah tersuai boleh mencapai pendikitan tugas tak segerak, TPL Dataflow menyediakan penyelesaian yang unggul. Kesederhanaan yang wujud, fleksibiliti dan keupayaan penimbalan yang mantap menjadikannya pilihan pilihan untuk mengurus operasi tak segerak serentak dengan cekap dan berkesan dalam aplikasi .NET.
Atas ialah kandungan terperinci Bagaimana Mendikit Tugas Asynchronous dengan Cekap dalam .NET Menggunakan Aliran Data TPL atau Kaedah Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!