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

Luồng (Threads) trong C#

Một luồng được định nghĩa là đường dẫn thực thi của chương trình. Mỗi luồng định nghĩa một luồng điều khiển duy nhất. Nếu ứng dụng của bạn liên quan đến các hoạt động phức tạp và tốn thời gian, thì thường hữu ích khi thiết lập các đường dẫn thực thi khác nhau hoặc các luồng, với mỗi luồng thực hiện một công việc cụ thể.

Vòng đời của luồng bắt đầu khi đối tượng của lớp System.Threading.Thread được tạo và kết thúc khi luồng bị chấm dứt hoặc hoàn thành thực thi.

Dưới đây là các trạng thái khác nhau trong vòng đời của luồng:

  • Trạng thái Unstarted - Tình huống khi thể hiện luồng được tạo nhưng phương thức Start chưa được gọi.

  • Trạng thái Ready - Tình huống khi luồng sẵn sàng chạy và chờ chu kỳ CPU.

  • Trạng thái Not Runnable - Luồng không thể thực thi khi:

    • Phương thức Sleep đã được gọi
    • Phương thức Wait đã được gọi
    • Bị chặn bởi các hoạt động I/O
  • Trạng thái Dead - Tình huống khi luồng hoàn thành thực thi hoặc bị hủy.

Dưới đây là ví dụ cho thấy cách tạo luồng:

Ví dụ

using System; 
using System.Threading; 
namespace Demo { 
    class Program { 
        public static void ThreadFunc() { 
            Console.WriteLine("Child thread starts"); 
        } 
        static void Main(string[] args) { 
            ThreadStart childref = new ThreadStart(ThreadFunc); 
            Console.WriteLine("In Main: Creating the Child thread"); 
            Thread childThread = new Thread(childref); 
            childThread.Start(); 
            Console.ReadKey(); 
        } 
    } 
}

Kết quả

In Main: Creating the Child thread Child thread starts