0
dispatch_get_global_queue
을 사용하여 백그라운드에서 일부 작업을 수행하고 있습니다.취소하고 다시 시작하십시오 dispatch_get_global_queue
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, (unsigned long)NULL), ^(void) {
x=someNumber;
[self dothis:x];
});
-(void)dothis:(int)x{
for (int i=0,i<x,i++){
// Some calculations
dispatch_async(dispatch_get_main_queue(), ^{
myTextview.text = [NSString stringWithFormat:@"%d",x];
});
}
}
지금 즉시 내 someNumber 변화에 따라, 나는 나의 dispatch_get_global_queue
을 중지하고 새로운 someNumber
값으로 다시 시작합니다. 지금은 somenumber
값이 변경되고 즉시 dispatch_get_global_queue
이라고 부르 자마자 이전 실행과 새로운 실행이 때때로 일치하여 내 textView에 잘못된 값을 넣습니다.
새로운 값으로 실행을 취소하고 다시 시작할 수있는 방법이 있습니까?
아니요, Grand Central Dispatch에서는이 기능을 사용할 수 없습니다. 프로그램 논리를 재고해야합니다. – borrrden