Friday, 15 August 2014

ios - How can I tell if the main thread has gone away? -



ios - How can I tell if the main thread has gone away? -

i'm performing few steps background thread, updating view on completion of each using:

[self performselectoronmainthread:@selector(updateprogress) withobject:nil waituntildone:no];

the problem if user dismisses view. background thread continues run, , crashes app when gets 1 of these actions. how can tell if thread has gone away?

do intend run method updateprogress in main thread or background thread? simple trick check. total proof should utilize nsoperationqueue instead of performselector

synthesize bool in viewcontroller

bool isbackgroundthreadstop;

initialize no somewhere relevant

self.isbackgroundthreadstop = no;

when user pressed button dismiss view:

-(void)dismissview { self.isbackgroundthreadstop = yes; [self dismissmodalviewcontrollerwhatever]; }

so in method

-(void)updateprogress { if(!self.isbackgroundthreadstop){ //run programme if background thread not stop //it won't run if isbackgroundthreadstop set yes } }

ios objective-c

No comments:

Post a Comment