2012-07-12 20 views
11
Thread myThread = new Thread(new ParameterizedThreadStart(threadFunction)); 

public void threadFunction() { 
// Run a finite code 
... 
} 

Câu hỏi là: myThread sẽ bị xử lý một lần khi số threadFunction() kết thúc?Chủ đề có dừng lại khi phạm vi chức năng kết thúc không?

+0

Cuối cùng; khi hàm hoàn thành, trạng thái Thread được đặt thành 'Stopped' và cuối cùng nó sẽ được thu gom rác. Xem thêm: http://stackoverflow.com/questions/81730/what-prevents-a-thread-in-c-sharp-from-being-collected – dash

+0

Có, chủ đề của bạn sẽ tự động xử lý khi hoàn thành việc thực thi. – Siddiqui

Trả lời

16

Chủ đề không cần phải được xử lý. Lớp Thread không triển khai IDisposable và không có phương thức Dispose.

Khi chuỗi của bạn hoàn tất, bạn không cần phải làm gì đặc biệt để dọn dẹp.

2

YES .. thread sẽ dừng lại và sẽ được xử lý một lần hàm trả về ..
để giữ chủ đề mà bạn sẽ phải làm một cái gì đó giống như

while(true){} 

Hoặc nếu bạn không muốn chủ đề của bạn sẽ được được xử lý vì tạo chủ đề mới tiêu thụ tài nguyên
bạn nên sử dụng số ThreadPool có một lớp có cùng tên trong .Net.
vì vậy mỗi lần bạn cần một chủ đề, nó sẽ được tìm nạp từ nhóm chủ đề và sử dụng

Các vấn đề liên quan