Bản sao có thể xảy ra:
Must every BeginInvoke be followed by an EndInvoke?
Is EndInvoke() optional, sort-of optional, or definitely not optional?Gọi không đồng bộ - Yêu cầu EndInvoke phải không?
Tôi đã có một ứng dụng đa luồng, và một trong những chủ đề phụ nào cần phải nhận được một số mã để thực thi trên các chủ đề chính một lần vài phút. Không có bất kỳ giá trị trả lại nào và chuỗi thứ hai không quan tâm nếu nó làm tăng bất kỳ ngoại lệ nào hoặc không chạy được.
Cho đến giờ, tôi đã làm cho nó chạy mã qua Form.Invoke
, nhưng đôi khi mất nhiều thời gian hơn bình thường (một vài giây) và chặn chuỗi cho đến khi hoàn thành. Tôi cần chuỗi thứ hai để có thể tiếp tục thực hiện mà không bị trì hoãn trong vài giây.
BeginInvoke
có vẻ như sẽ thực hiện công việc một cách độc đáo, nhưng tôi không thực sự có bất kỳ nơi nào để gọi EndInvoke
, vì tôi không muốn đợi hoặc nhận lại giá trị. Và xem xét rằng mã được gọi liên quan đến một loạt các cuộc gọi bản địa, tôi không chắc chắn nếu nó là một ý tưởng tốt để không EndInvoke
.
Tôi có cần gọi số EndInvoke
hay không, hoặc có cách nào khác để nhận mã chạy trên chuỗi biểu mẫu chính không đồng bộ mà tôi nên sử dụng thay thế không?
Cảm ơn =)
Tuyệt vời, vì vậy tôi chỉ có thể thay đổi 'Gọi của tôi thành' BeginInvoke 'mà không cần thổi bất cứ thứ gì lên. –