Tôi đang chuyển mã của mình từ GCD thông thường sang NSOperationQueue
vì tôi cần một số chức năng. Rất nhiều mã của tôi dựa trên dispatch_after để hoạt động đúng. Có cách nào để làm điều gì đó tương tự với NSOperation
không?dispatch_after tương đương trong NSOperationQueue
Đây là một số mã của tôi cần được chuyển đổi thành NSOperation
. Nếu bạn có thể cung cấp một ví dụ về chuyển đổi nó bằng cách sử dụng mã này, đó sẽ là tuyệt vời.
dispatch_queue_t queue = dispatch_queue_create("com.cue.MainFade", NULL);
dispatch_time_t mainPopTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(timeRun * NSEC_PER_SEC));
dispatch_after(mainPopTime, queue, ^(void){
if(dFade !=nil){
double incriment = ([dFade volume]/[self fadeOut])/10; //incriment per .1 seconds.
[self doDelayFadeOut:incriment with:dFade on:dispatch_queue_create("com.cue.MainFade", 0)];
}
});
Điều này sẽ giữ cho các hoạt động tích cực trong hàng đợi, và trong trường hợp của một hàng đợi với một số giới hạn các hoạt động tích cực, giấc ngủ mà sẽ tổ chức các hoạt động hợp pháp khác từ thực thi. – Bogdan
Đồng ý với @Bogdan. Đây không phải là một cách tiếp cận tốt. Bạn không bao giờ nên chặn các luồng hàng đợi hoạt động. – Randy