0

Cách chạy các tác vụ đồng thời bằng Thread và Task trong C#.

Trong C#, bạn có thể chạy nhiều tác vụ đồng thời bằng cách sử dụng các tiến trình (threads) hoặc các tác vụ (tasks). Dưới đây là hai cách tiêu biểu để thực hiện điều này:

Sử dụng Tiến Trình (Threads):

using System;
using System.Threading;

class Program
{
    static void Main()
    {
        Thread t1 = new Thread(() => RunApi(1));
        Thread t2 = new Thread(() => RunApi(2));
        Thread t3 = new Thread(() => RunApi(3));
        Thread t4 = new Thread(() => RunApi(4));
        Thread t5 = new Thread(() => RunApi(5));

        t1.Start();
        t2.Start();
        t3.Start();
        t4.Start();
        t5.Start();

        t1.Join();
        t2.Join();
        t3.Join();
        t4.Join();
        t5.Join();

        Console.WriteLine("Tất cả các API đã hoàn thành.");
    }

    static void RunApi(int apiNumber)
    {
        // Thực hiện logic của API ở đây
        Console.WriteLine("API " + apiNumber + " đang chạy...");
        Thread.Sleep(2000); // Đây là một ví dụ về thời gian xử lý của API (2 giây)
        Console.WriteLine("API " + apiNumber + " đã hoàn thành.");
    }
}

Sử dụng Tác Vụ (Tasks):

using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var tasks = new Task[5];
        for (int i = 0; i < 5; i++)
        {
            int apiNumber = i + 1;
            tasks[i] = Task.Run(() => RunApi(apiNumber));
        }

        await Task.WhenAll(tasks);

        Console.WriteLine("Tất cả các API đã hoàn thành.");
    }

    static void RunApi(int apiNumber)
    {
        // Thực hiện logic của API ở đây
        Console.WriteLine("API " + apiNumber + " đang chạy...");
        Task.Delay(2000).Wait(); // Đây là một ví dụ về thời gian xử lý của API (2 giây)
        Console.WriteLine("API " + apiNumber + " đã hoàn thành.");
    }
}

Cả hai phương pháp trên đều cho phép bạn chạy nhiều API đồng thời. Chọn phương pháp phù hợp với nhu cầu cụ thể của bạn và cân nhắc về quản lý tài nguyên và đồng bộ hóa trong ứng dụng của mình.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí