Điều gì xảy ra với một chuỗi nếu nó đang chạy một phương thức trong một đối tượng được giải thoát bằng cách thoát khỏi khối sử dụng?
Ví dụ:C# thoát một khối bằng cách sử dụng() với một chủ đề vẫn đang chạy onthe đối tượng vi phạm
using (SomeObject obj = new SomeObject()) { obj.param = 10 ; Thread newThread = new Thread(() => { obj.Work(); }); newThread.Start(); } ...
obj.Work() đang chạy trên một chủ đề mới nhưng obj là một đối tượng IDisposable mà thông thường sẽ được phát hành khi sử dụng lối ra khối. Điều gì xảy ra nếu chuỗi tiếp tục chạy sau khi khối sử dụng kết thúc? Liệu đối tượng sẽ được xử lý chỉ sau khi luồng hoàn thành? Hoặc sẽ phá vỡ thread?
Cảm ơn.
Thay vì sử dụng câu lệnh bên ngoài chuỗi, hãy đặt nó bên trong chuỗi. Chủ đề newthread = new Thread (() => { sử dụng (SomeObject obj = new SomeObject()) { obj.param = 10; obj.Work();} }); newThread.Start(); – Relster