2012-02-06 27 views
7

Điều gì xảy ra nếu một khối thực thi không đồng bộ trên hàng đợi nền khi người dùng thoát khỏi ứng dụng? Nó sẽ bị chấm dứt? Tôi có thể xử lý trong số –applicationWillTerminate: không?Điều gì sẽ xảy ra với một khối chạy trên hàng đợi công văn GCD nếu ứng dụng chấm dứt?

Tôi không nói về nhiệm vụ chạy dài .. chỉ cần tự hỏi liệu có một mối nguy hiểm vốn có trong việc làm bất cứ điều gì có thể dẫn đến trạng thái không nhất quán không đồng bộ?

Trả lời

2

Tất cả các chủ đề (GCD được tạo hoặc không) được chấm dứt khi một ứng dụng thoát, do đó, có, khối sẽ không được chạy (bao giờ) nếu nó chưa có. Nếu có công việc đang được thực hiện cần hoàn thành trước khi ứng dụng có thể thoát ra an toàn thì bạn có thể chờ đợi trong ứng dụngWillTerminate, nhưng thực sự không phải là một ý tưởng tốt để thiết lập mọi thứ theo cách đó vì ứng dụng của bạn cũng có thể bị người dùng từ bỏ -ứng dụngWillTerminate có thể không bao giờ chạy.

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