Jadual Kandungan
Cara membuat dan memulakan tugas
Lakukan pelbagai tugas selari
Mengendalikan pengecualian dan membatalkan tugas
Rumah pembangunan bahagian belakang Tutorial C#.Net Menggunakan Perpustakaan Selari Tugas (TPL) di C#

Menggunakan Perpustakaan Selari Tugas (TPL) di C#

Jul 31, 2025 am 07:56 AM
c# TPL

TPL C#memudahkan pemprosesan tugas selari melalui kelas tugas. 1. Gunakan Task.run () atau Task.Factory.StartNew () untuk memulakan tugas, dan mengesyorkan bekas; 2. Dapatkan hasilnya melalui tugas dan tunggu siap dengan menunggu atau .Result; 3. Gunakan tugas.whenall () untuk melaksanakan pelbagai tugas selari, perhatikan persaingan sumber; 4. Gunakan AggregateException untuk mengendalikan pengecualian, dan melintasi kesilapan tertentu selepas menangkap; 5. Penggunaan CancellationTokenSource untuk membatalkan tugas, yang sesuai untuk senario pembatalan masa tamat atau pengguna; Pada masa yang sama, perhatikan untuk mengelakkan pencampuran kod segerak dan tidak segerak untuk mengelakkan masalah kebuntuan.

Menggunakan Perpustakaan Selari Tugas (TPL) di C#

Apabila mengendalikan tugas selari, Perpustakaan Paralel Tugas C#(TPL) adalah alat yang sangat praktikal. Ia memudahkan pengaturcaraan multi-threading dan asynchronous, yang membolehkan anda memberi tumpuan lebih kepada logik perniagaan daripada pengurusan thread yang mendasari. Jika anda bosan dengan membuat dan menguruskan benang secara manual, maka TPL adalah kegemaran baru anda.

Menggunakan Perpustakaan Selari Tugas (TPL) di C#

Cara membuat dan memulakan tugas

Menggunakan kelas Task adalah amalan yang paling biasa. Anda boleh memulakan tugas melalui Task.Run() atau Task.Factory.StartNew() . Task.Run() disyorkan kerana ia lebih mudah dan berjalan di kolam benang secara lalai.

Menggunakan Perpustakaan Selari Tugas (TPL) di C#
 Tugas tugas = tugas.run (() =>
{
    // logik kod anda});

Kaedah ini sesuai untuk menjalankan operasi yang tidak memerlukan nilai pulangan. Jika anda perlu mendapatkan hasilnya, anda boleh menggunakan Task<TResult> :

 Task <int> tugas = tugas.run (() =>
{
    pulangan 42;
});

Jangan lupa untuk menelefon await task; atau .Result untuk menunggu tugas menyelesaikan dan mendapatkan hasilnya. Walau bagaimanapun, sedar isu -isu kebuntuan, terutamanya dalam konteks UI atau ASP.NET.

Menggunakan Perpustakaan Selari Tugas (TPL) di C#

Lakukan pelbagai tugas selari

Jika anda mempunyai satu set tugas yang berasingan yang perlu dilaksanakan secara serentak, anda boleh menggunakan Task.WhenAll() . Ia mengembalikan tugas baru yang tidak akan selesai selepas semua tugas input selesai.

 var tugas1 = task.run (() => dosomething (1));
var tugas2 = task.run (() => dosomething (2));
var tugas3 = task.run (() => dosomething (3));

menunggu tugas.whenall (Task1, Task2, Task3);

Kaedah ini sesuai untuk pemprosesan data batch atau untuk memulakan permintaan API berganda serentak. Tetapi perhatikan isu persaingan sumber. Sebagai contoh, apabila pelbagai tugas menulis kepada pemboleh ubah yang sama, ingatlah untuk mengunci atau menggunakan struktur data selamat thread.

Mengendalikan pengecualian dan membatalkan tugas

Tugas mungkin gagal, jadi pengendalian pengecualian juga penting. TPL menyediakan AggregateException untuk merangkum pelbagai pengecualian. Anda boleh menangkap dan melihat kesilapan tertentu melalui try-catch .

 Cuba
{
    menunggu tugas;
}
Tangkap (AggregateException AE)
{
    foreach (var ex in ae.innerexceptions)
    {
        Console.WriteLine (ex.message);
    }
}

Jika anda ingin membatalkan tugas separuh jalan, anda boleh menggunakan CancellationTokenSource :

 var cts = cancellationTokenSource baru ();
Tugas tugas = tugas.run (() =>
{
    Sementara (! Cts.token.iscancellationRequested)
    {
        // buat beberapa operasi gelung}
}, cts.token);

// membatalkan tugas cts.cancel ();

Kaedah ini sangat berguna dalam senario seperti pengguna mengklik butang "Batal", pemprosesan masa tamat, dll.


Pada dasarnya itu sahaja. TPL menyediakan banyak fungsi yang kuat, tetapi kunci untuk benar -benar menggunakannya dengan baik adalah untuk memahami kitaran hayat tugas, mekanisme pengendalian pengecualian, dan bagaimana untuk memperuntukkan sumber -sumber yang munasabah. Apa yang tidak rumit tetapi mudah diabaikan ialah: Jangan dengan mudah campurkan kod segerak dan tidak segerak, jika tidak, ia akan mudah untuk masuk ke dalam perangkap.

Atas ialah kandungan terperinci Menggunakan Perpustakaan Selari Tugas (TPL) di C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Skop pembolehubah PHP dijelaskan
1 bulan yang lalu By 百草
Mengulas kod dalam php
1 bulan yang lalu By 百草
Petua untuk menulis komen php
1 bulan yang lalu By 百草

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1511
276
Perbezaan antara multithreading dan asynchronous C# Perbezaan antara multithreading dan asynchronous C# Apr 03, 2025 pm 02:57 PM

Perbezaan antara multithreading dan asynchronous adalah bahawa multithreading melaksanakan pelbagai benang pada masa yang sama, sementara secara tidak sengaja melakukan operasi tanpa menyekat benang semasa. Multithreading digunakan untuk tugas-tugas yang berintensifkan, sementara asynchronously digunakan untuk interaksi pengguna. Kelebihan multi-threading adalah untuk meningkatkan prestasi pengkomputeran, sementara kelebihan asynchronous adalah untuk tidak menghalang benang UI. Memilih multithreading atau asynchronous bergantung kepada sifat tugas: tugas-tugas intensif pengiraan menggunakan multithreading, tugas yang berinteraksi dengan sumber luaran dan perlu menyimpan respons UI menggunakan asynchronous.

C# vs C: Sejarah, evolusi, dan prospek masa depan C# vs C: Sejarah, evolusi, dan prospek masa depan Apr 19, 2025 am 12:07 AM

Sejarah dan evolusi C# dan C adalah unik, dan prospek masa depan juga berbeza. 1.C dicipta oleh BjarnestroustRup pada tahun 1983 untuk memperkenalkan pengaturcaraan berorientasikan objek ke dalam bahasa C. Proses evolusinya termasuk pelbagai standardisasi, seperti C 11 memperkenalkan kata kunci auto dan ekspresi Lambda, C 20 memperkenalkan konsep dan coroutin, dan akan memberi tumpuan kepada pengaturcaraan prestasi dan sistem pada masa akan datang. 2.C# telah dikeluarkan oleh Microsoft pada tahun 2000. Menggabungkan kelebihan C dan Java, evolusinya memberi tumpuan kepada kesederhanaan dan produktiviti. Sebagai contoh, C#2.0 memperkenalkan generik dan C#5.0 memperkenalkan pengaturcaraan tak segerak, yang akan memberi tumpuan kepada produktiviti pemaju dan pengkomputeran awan pada masa akan datang.

Apakah pengaturcaraan C# multithreading? C# Pemrograman Multithreading Menggunakan C Apakah pengaturcaraan C# multithreading? C# Pemrograman Multithreading Menggunakan C Apr 03, 2025 pm 02:45 PM

C Ia dapat meningkatkan kecekapan program dengan meningkatkan prestasi, meningkatkan respons dan melaksanakan pemprosesan selari. Walaupun kelas thread menyediakan cara untuk membuat benang secara langsung, alat lanjutan seperti tugas dan async/menunggu dapat memberikan operasi tak segerak yang lebih selamat dan struktur kod yang bersih. Cabaran umum dalam pengaturcaraan multithread termasuk kebuntuan, keadaan kaum, dan kebocoran sumber, yang memerlukan reka bentuk yang teliti model threading dan penggunaan mekanisme penyegerakan yang sesuai untuk mengelakkan masalah ini.

C# .NET: Membina aplikasi dengan ekosistem .NET C# .NET: Membina aplikasi dengan ekosistem .NET Apr 27, 2025 am 12:12 AM

Bagaimana Membina Aplikasi Menggunakan .NET? Membina aplikasi menggunakan .NET boleh dicapai melalui langkah-langkah berikut: 1) Memahami asas-asas .NET, termasuk C# bahasa dan sokongan pembangunan silang platform; 2) mempelajari konsep teras seperti komponen dan prinsip kerja ekosistem .NET; 3) menguasai penggunaan asas dan lanjutan, dari aplikasi konsol mudah ke operasi WebAPIS dan pangkalan data yang kompleks; 4) terbiasa dengan kesilapan biasa dan teknik debugging, seperti konfigurasi dan isu sambungan pangkalan data; 5) Pengoptimuman prestasi aplikasi dan amalan terbaik, seperti pengaturcaraan dan caching asynchronous.

Dari web ke desktop: fleksibiliti C# .net Dari web ke desktop: fleksibiliti C# .net Apr 15, 2025 am 12:07 AM

C#.netisversatileforbothwebanddesktopdevelopment.1) Forweb, useasp.netfordynamicapplications.2) Fordesktop, ExployWindowsFormsor Wpfforrichinterfaces.3) UseXamarinforcross-platformdevelopment, enablingcodesharingacrosswindows, macOS, linux, andmobiledevices.

Apakah faedah multithreading dalam C#? Apakah faedah multithreading dalam C#? Apr 03, 2025 pm 02:51 PM

Kelebihan multithreading ialah ia dapat meningkatkan prestasi dan penggunaan sumber, terutamanya untuk memproses sejumlah besar data atau melakukan operasi yang memakan masa. Ia membolehkan pelbagai tugas dilakukan secara serentak, meningkatkan kecekapan. Walau bagaimanapun, terlalu banyak benang boleh menyebabkan kemerosotan prestasi, jadi anda perlu dengan teliti memilih bilangan benang berdasarkan bilangan teras CPU dan ciri -ciri tugas. Di samping itu, pengaturcaraan multi-threaded melibatkan cabaran seperti kebuntuan dan keadaan perlumbaan, yang perlu diselesaikan menggunakan mekanisme penyegerakan, dan memerlukan pengetahuan yang kukuh tentang pengaturcaraan serentak, menimbang kebaikan dan keburukan dan menggunakannya dengan berhati-hati.

Rangka Kerja .NET vs C#: Menyahkodkan istilah Rangka Kerja .NET vs C#: Menyahkodkan istilah Apr 21, 2025 am 12:05 AM

.NetFramework adalah kerangka perisian, dan C# adalah bahasa pengaturcaraan. 1..NetFramework menyediakan perpustakaan dan perkhidmatan, sokongan desktop, web dan aplikasi mudah alih. 2.C# direka untuk .NetFramework dan menyokong fungsi pengaturcaraan moden. 3..NetFramework Menguruskan pelaksanaan kod melalui CLR, dan kod C# disusun ke IL dan dikendalikan oleh CLR. 4. Gunakan .NetFramework untuk membangunkan aplikasi dengan cepat, dan C# menyediakan fungsi lanjutan seperti LINQ. 5. Kesilapan umum termasuk penukaran jenis dan kebuntuan pengaturcaraan tak segerak. Alat VisualStudio diperlukan untuk debugging.

Menggunakan C# .NET Aplikasi ke Azure/AWS: Panduan Langkah demi Langkah Menggunakan C# .NET Aplikasi ke Azure/AWS: Panduan Langkah demi Langkah Apr 23, 2025 am 12:06 AM

Bagaimana cara menggunakan aplikasi C# .net ke Azure atau AWS? Jawapannya ialah menggunakan Azureappservice dan AwselasticBeansTalk. 1. Pada Azure, mengautomasikan penggunaan menggunakan Azureappservice dan Azurepipelines. 2. Pada AWS, gunakan Amazon ElasticBeansTalk dan AWSLambda untuk melaksanakan penempatan dan pengiraan tanpa pelayan.

See all articles