Ngôn ngữ C# - Lớp Thread

Lớp Thread trong C#

Lớp Thread cung cấp nhiều thuộc tính và các phương thức để tạo và điều khiển các thread. Lớp Thread nằm trong namespace System.Threading

Bảng dưới liệt kê một số thuộc tính được sử dụng phổ biến nhất của lớp Thread trong C#:

Thuộc tính Miêu tả
CurrentContext Lấy ngữ cảnh (context) hiện tại mà trong đó Thread đang thực thi
CurrentCulture Lấy hoặc thiết lập culture gồm language, date, time, currency, … cho Thread hiện tại
CurrentPrinciple Lấy hoặc thiết lập nguyên lý hiện tại của Thread
CurrentThread Lấy Thread đang chạy hiện tại
CurrentUICulture Lấy hoặc thiết lập culture hiện tại được sử dụng bởi Resource Manager để tìm kiếm cho Resource cụ thể tại runtime
ExecutionContext Lấy một đối tượng ExecutionContext mà chứa thông tin về các context đa dạng của Thread hiện tại
IsAlive Lấy một giá trị chỉ trạng thái thực thi của Thread hiện tại
IsBackground Lấy hoặc thiết lập một giá trị chỉ rằng có hay không một Thread là Background Thread
IsThreadPoolThread Lấy một giá trị chỉ rằng có hay không một Thread là của Managed Thread Pool
ManagedThreadId Lấy một định danh duy nhất cho Managed Thread hiện tại
Name Lấy hoặc thiết lập tên của Thread
Priority Lấy hoặc thiết lập một giá trị chỉ quyền ưu tiên của một Thread
ThreadState Lấy một giá trị chứa các trạng thái của Thread hiện tại

Bảng này liệt kê các phương thức được sử dụng phổ biến nhất của lớp Thread trong C#:

STT Phương thức
1 public void Abort()

Tạo một ThreadAbortException trong Thread mà trên đó nó được triệu hồi, để bắt đầu tiến trình kết thúc Thread đó. Gọi phương thức này thường kết thúc Thread

2 public static LocalDataStoreSlot AllocateDataSlot()

Cấp phát một Unnamed Data Slot cho tất cả Thread. Để tăng hiệu suất, sử dụng các Field mà được đánh dấu với attribute là ThreadStaticAttribute để thay thế

3 public static LocalDataStoreSlot AllocateNamedDataSlot(string name)

Cấp phát một Named Data Slot cho tất cả Thread. Để tăng hiệu suất, sử dụng các Field mà được đánh dấu với attribute là ThreadStaticAttribute để thay thế

4 public static void BeginCriticalRegion()

Thông báo cho một host rằng sự thực thi là chuẩn bị đi vào một khu vực code, mà trong đó các ảnh hưởng của việc hủy bỏ một Thread hoặc các Exception không được xử lý có thể gây nguy hại tới các tác vụ khác trong miền ứng dụng

5 public static void BeginThreadAffinity()

Thông báo cho một Host rằng Managed code là chuẩn bị thực thi các chỉ lệnh mà phụ thuộc vào tính đồng nhất của Physical operating system thread hiện tại

6 public static void EndCriticalRegion()

Thông báo cho một host rằng sự thực thi là chuẩn bị đi vào một khu vực code, mà trong đó các ảnh hưởng của hủy bỏ một Thread hoặc các Exception không được xử lý bị hạn chế tới tác vụ hiện tại

7 public static void EndThreadAffinity()

Thông báo cho một Host rằng Managed code đã kết thúc việc thực thi các chỉ lệnh mà phụ thuộc vào tính đồng nhất của Physical Operating System Thread hiện tại

8 public static void FreeNamedDataSlot(string name)

Loại bỏ sự liên kết giữa một name và một slot, cho tất cả Thread trong tiến trình. Để tăng hiệu suất, sử dụng các Field mà được đánh dấu với attribute là ThreadStaticAttribute để thay thế

9 public static Object GetData(LocalDataStoreSlot slot)

Thu hồi giá trị từ slot đã xác định trên Thread hiện tại, bên trong miền hiện tại của Thread hiện tại. Để tăng hiệu suất, sử dụng các Field mà được đánh dấu với attribute là ThreadStaticAttribute để thay thế

10 public static AppDomain GetDomain()

Trả về miền hiện tại trong đó Thread đang chạy

11 public static AppDomain GetDomain()

Trả về một định danh miền ứng dụng duy nhất

12 public static LocalDataStoreSlot GetNamedDataSlot(string name)

Tìm kiếm một Named Data Slot. Để tăng hiệu suất, sử dụng các Field mà được đánh dấu với attribute là ThreadStaticAttribute để thay thế

13 public void Interrupt()

Interrupt (ngắt) một Thread mà trong trạng thái WaitSleepJoin

14 public void Join()

Chặn Thread đang gọi tới khi một Thread kết thúc, trong khi tiếp tục thực hiện COM và SendMessage Pumping. Phương thức này có các mẫu được nạp chồng khác nhau

15 public static void MemoryBarrier()

Đồng bộ truy cập bộ nhớ như sau: Prosessor đang thực thi Thread hiện tại không thể sắp xếp lại các chỉ lệnh theo một cách để mà quyền truy cập bộ nhớ tới lời gọi đến MemoryBarrier thực thi sau khi các truy cập bộ nhớ mà theo sau lời gọi đó đến MemoryBarrier

16 public static void ResetAbort()

Hủy một Abort được yêu cầu cho Thread hiện tại

17 public static void SetData(LocalDataStoreSlot slot, Object data)

Thiết lập dữ liệu trong slot đã cho trên Thread đang chạy hiện tại, cho miền hiện tại của Thread đó. Để tăng hiệu suất, sử dụng các Field mà được đánh dấu với attribute là ThreadStaticAttribute để thay thế

18 public void Start()

Bắt đầu một Thread

19 public static void Sleep(int millisecondsTimeout)

Làm Thread dừng trong một khoảng thời gian

20 public static void SpinWait(int iterations)

Làm một Thread đợi một khoảng thời gian đã được xác định trong tham số iterations

21

public static byte VolatileRead(ref byte address)

public static double VolatileRead(ref double address)

public static int VolatileRead(ref int address)

public static Object VolatileRead(ref Object address)

Đọc giá trị của một Field. Giá trị này là được viết mới nhất bởi bất kỳ Prosessor nào trong một máy tính, không quan tâm đến số lượng Prosessor hoặc trạng thái của Prosessor Cache. Phương thức này có các mẫu được nạp chồng khác nhau. Đó là các form ở trên

22

public static void VolatileWrite(ref byte address,byte value)

public static void VolatileWrite(ref double address, double value)

public static void VolatileWrite(ref int address, int value)

public static void VolatileWrite(ref Object address, Object value)

Ghi một giá trị tới một Field ngay lập tức, để mà giá trị này là nhìn thấy cho tất cả Processor trong máy tính. Phương thức này có các mẫu được nạp chồng khác nhau. Đó là các form ở trên

23 public static bool Yield()

Làm Thread đang gọi chuyển sự thực thi cho Thread khác mà đã sẵn sàng để chạy trên Processor hiện tại. Hệ điều hành chọn Thread để chuyển tới