Menggunakan tugasan C#

WBOY
WBOYasal
2024-02-19 12:16:051200semak imbas

Menggunakan tugasan C#

C# Penggunaan tugas, contoh kod khusus diperlukan

Ikhtisar:
Task ialah jenis yang sangat biasa digunakan dalam C# Ia mewakili operasi boleh laku yang boleh dilaksanakan secara tidak segerak dan mengembalikan hasilnya. Tugas memainkan peranan penting dalam mengendalikan operasi tak segerak, pemprosesan selari dan meningkatkan prestasi aplikasi. Artikel ini akan memperkenalkan penggunaan asas Tugas dan menyediakan beberapa contoh kod khusus.

  1. Buat dan gunakan Tugasan
    Dalam C#, anda boleh menggunakan kelas Tugas untuk mencipta dan menggunakan tugas tak segerak. Berikut ialah contoh kod untuk mencipta dan menggunakan Tugasan:
using System;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        // 创建并启动一个Task
        Task task = Task.Run(() =>
        {
            //异步执行的代码逻辑
            Console.WriteLine("Task is executing...");
        });

        // 等待Task完成
        task.Wait();

        Console.WriteLine("Task is completed.");
    }
}

Dalam contoh di atas, kami mencipta Tugasan dan menentukan logik pelaksanaan tugasan melalui kaedah Task.Run. Kami kemudian menggunakan kaedah tugas.Tunggu untuk menunggu tugasan selesai dan mencetak mesej apabila tugasan selesai.

  1. Task mengembalikan hasil
    Kadangkala, kita memerlukan Task untuk mengembalikan hasil kepada pemanggil. Kelas Task menyediakan satu siri kaedah, seperti Task, Task.Run, Task.FromResult, dsb., untuk mengendalikan tugasan dengan nilai pulangan. Berikut ialah kod sampel yang mengembalikan hasil tugasan:
using System;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        // 创建并启动一个Task
        Task<int> task = Task.Run(() =>
        {
            //异步执行的代码逻辑
            return 42;
        });

        // 等待并获取任务结果
        int result = task.Result;

        Console.WriteLine("Task result: " + result);
    }
}

Dalam contoh di atas, kami mencipta Tugasan yang mengembalikan hasil integer dan memperoleh hasil tugasan selepas pelaksanaan tugasan selesai.

  1. Berbilang Tugasan dilaksanakan secara selari
    Task juga boleh digunakan untuk melaksanakan berbilang tugas pada masa yang sama, dengan itu meningkatkan prestasi aplikasi. Ini boleh dicapai dengan menggunakan kaedah Task.WhenAll atau Task.WhenAny. Berikut ialah contoh kod untuk pelaksanaan selari berbilang tugasan:
using System;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        Task task1 = Task.Run(() =>
        {
            Console.WriteLine("Task 1 is executing...");
        });

        Task<int> task2 = Task.Run(() =>
        {
            Console.WriteLine("Task 2 is executing...");
            return 42;
        });

        Task task3 = Task.Run(() =>
        {
            Console.WriteLine("Task 3 is executing...");
        });

        // 等待所有任务完成
        Task.WhenAll(task1, task2, task3).Wait();

        Console.WriteLine("All tasks are completed.");
    }
}

Dalam contoh di atas, kami mencipta tiga tugasan dan menunggu semua tugasan selesai melalui kaedah Task.WhenAll.

Kesimpulan:
Melalui contoh kod di atas, kami memahami penggunaan asas Task dalam C#. Kelas Tugas menyediakan cara yang mudah untuk mengendalikan operasi tak segerak, pemprosesan selari dan meningkatkan prestasi aplikasi. Dalam projek sebenar, kami boleh menggunakan Tugas untuk mengendalikan pelbagai tugas tak segerak mengikut keperluan.

Nota: Kod contoh di atas hanya digunakan untuk menunjukkan penggunaan asas Tugasan Dalam penggunaan sebenar, ia mungkin perlu dilaraskan dan dioptimumkan mengikut keperluan khusus.

Atas ialah kandungan terperinci Menggunakan tugasan 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