Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Chương trình C# tạo luồng đơn giản (Simple Thread)

Tạo luồng (thread) mới trong C# bằng lớp System.Threading.Thread và delegate ThreadStart.

Các bước cơ bản

  1. Viết phương thức chứa logic luồng (không tham số, void).
  2. Tạo đối tượng Thread với ThreadStart trỏ đến phương thức.
  3. Gọi thread.Start() để bắt đầu thực thi.

Mã nguồn

using System;
using System.Threading;

class Demo {
    public void myThread() {
        for (int i = 0; i < 3; i++) {
            Console.WriteLine("My Thread");
        }
    }
}

class NewThread {
    public static void Main() {
        Demo d = new Demo();
        Thread thread = new Thread(new ThreadStart(d.myThread));
        thread.Start();
        Console.Read();
    }
}

Kết quả

My Thread
My Thread
My Thread

Giải thích

  • ThreadStart: Delegate không tham số, trả về void — dùng cho phương thức đơn giản.
  • thread.Start(): Bắt đầu luồng mới, phương thức myThread chạy song song với Main.
  • Luồng chính (Main) tiếp tục chạy — ở đây chờ Console.Read() để không thoát ngay.

Truyền tham số cho luồng

Dùng ParameterizedThreadStart (nhận object):

Thread thread = new Thread(new ParameterizedThreadStart(MyMethod));
thread.Start("Hello"); // Truyền đối số

void MyMethod(object data) {
    Console.WriteLine(data); // "Hello"
}

Lưu ý

  • Luồng mặc định là foreground thread — ứng dụng không thoát cho đến khi tất cả foreground thread kết thúc.
  • Dùng thread.IsBackground = true để tạo background thread (tự động kết thúc khi main thread xong).
  • Ưu tiên dùng Task.Run() (TPL) cho code hiện đại — đơn giản, mạnh mẽ hơn.