Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan tugas tak segerak dan teknologi pengkomputeran selari dalam C#

Cara menggunakan tugas tak segerak dan teknologi pengkomputeran selari dalam C#

WBOY
WBOYasal
2023-10-09 21:28:591207semak imbas

Cara menggunakan tugas tak segerak dan teknologi pengkomputeran selari dalam C#

Cara menggunakan tugas tak segerak dan teknologi pengkomputeran selari dalam C#

Pengenalan:
Dalam pembangunan perisian hari ini, isu kecekapan dan prestasi sentiasa menjadi tumpuan pembangun. Untuk meningkatkan kelajuan tindak balas aplikasi dan kecekapan menyelesaikan tugas yang kompleks, C# menyediakan tugas tak segerak dan teknologi pengkomputeran selari. Artikel ini akan memperkenalkan secara terperinci cara menggunakan tugas tak segerak dan teknologi pengkomputeran selari dalam C#, dan menyediakan contoh kod khusus.

1. Tugas tak segerak
1.1 Gambaran keseluruhan
Tugas tak segerak merujuk kepada tugas yang boleh dilaksanakan di latar belakang, yang boleh memastikan antara muka aplikasi responsif dan meningkatkan prestasi program. Dalam C#, tugas tak segerak boleh dilaksanakan menggunakan kata kunci tak segerak dan menunggu.

1.2 Kaedah tak segerak
Kaedah tak segerak dalam C# merujuk kepada kaedah dengan pengubah suai kata kunci async Kaedah yang diubah suai boleh mengandungi satu atau lebih ekspresi menunggu. Dalam kaedah tak segerak, gunakan kata kunci await untuk menunggu selesainya operasi tak segerak, sambil membenarkan tugasan lain terus dilaksanakan semasa menunggu.

1.3 Langkah untuk menggunakan tugas tak segerak
Berikut ialah langkah asas untuk menggunakan tugas tak segerak:
1) Isytihar kaedah tak segerak dan ubah suai dengan kata kunci tak segerak.
2) Gunakan kata kunci tunggu dalam kaedah tak segerak untuk menunggu selesainya operasi tak segerak.
3) Apabila memanggil kaedah tak segerak, gunakan kata kunci await untuk mendapatkan hasil tak segerak.

1.4 Contoh
Berikut ialah contoh mudah menggunakan tugas tak segerak untuk menunjukkan proses memuat turun fail secara tidak segerak.

using System;
using System.Net;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        DownloadFileAsync("https://www.example.com/file.txt").Wait();
        Console.WriteLine("文件下载完成!");
    }

    static async Task DownloadFileAsync(string url)
    {
        using (var client = new WebClient())
        {
            await client.DownloadFileTaskAsync(new Uri(url), "file.txt");
        }
    }
}

Dalam contoh di atas, dengan menggunakan kata kunci tak segerak dan menunggu, proses memuat turun fail dilaksanakan secara tak segerak, dan semasa proses menunggu, antara muka aplikasi kekal responsif.

2. Teknologi Pengkomputeran Selari
2.1 Gambaran Keseluruhan
Teknologi pengkomputeran selari merujuk kepada teknologi yang menguraikan tugas besar kepada beberapa tugas kecil untuk pelaksanaan selari. Dalam C#, anda boleh menggunakan kelas Selari dan PLINQ untuk melaksanakan pengkomputeran selari.

2.2 Kelas selari
Kelas Selari ialah kelas statik yang menyediakan satu siri kaedah untuk melaksanakan tugasan secara selari. Melalui kelas Selari, pelaksanaan selari pelbagai tugas boleh dicapai dengan mudah.

2.3 PLINQ
PLINQ (LINQ Selari) merujuk kepada pertanyaan LINQ yang boleh dilaksanakan secara selari. Melalui PLINQ, pertanyaan selari dan pemprosesan koleksi dapat direalisasikan dengan cepat.

2.4 Langkah untuk menggunakan pengkomputeran selari
Berikut adalah langkah asas untuk menggunakan pengkomputeran selari:
1) Bergantung pada jenis tugasan, pilih untuk menggunakan kelas Selari atau PLINQ untuk melaksanakan pengkomputeran selari.
2) Pecahkan tugasan kepada tugasan yang lebih kecil.
3) Gunakan kaedah kelas Selari atau PLINQ untuk melaksanakan tugas pada berbilang pemproses serentak.
4) Cantumkan hasil pengiraan selari.

2.5 Contoh
Berikut ialah contoh pengiraan nombor perdana menggunakan teknik pengiraan selari.

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        var primes = Enumerable.Range(2, 1000000)
                              .AsParallel()
                              .Where(n => Enumerable.Range(2, (int)Math.Sqrt(n) - 1)
                                                   .All(i => n % i != 0));

        Console.WriteLine("1到1000000之间的素数个数:{0}", primes.Count());
    }
}

Dalam contoh di atas, dengan menggunakan kaedah AsParallel untuk menukar pertanyaan kepada pertanyaan selari, proses pengiraan nombor perdana boleh dilaksanakan secara serentak pada berbilang pemproses, meningkatkan kecekapan pengiraan.

Kesimpulan:
Artikel ini memperincikan penggunaan tugas tak segerak dan teknologi pengkomputeran selari dalam C# dan menyediakan contoh kod khusus. Melalui aplikasi tugas tak segerak dan teknologi pengkomputeran selari, kelajuan tindak balas dan kecekapan pengkomputeran aplikasi boleh dipertingkatkan, dan prestasi program boleh dipertingkatkan.

Rujukan:
Microsoft Docs (2021) Pengaturcaraan tak segerak dan menunggu daripada https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/
Microsoft Docs. . (2021) Cara: Menulis gelung foreach dalam Visual C#. -gelung-foreach-dengan-break

Atas ialah kandungan terperinci Cara menggunakan tugas tak segerak dan teknologi pengkomputeran selari dalam C#. 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