Re: Recurrent background thread
Re: Recurrent background thread
- Subject: Re: Recurrent background thread
- From: Carl Hoefs <email@hidden>
- Date: Fri, 13 May 2016 13:05:07 -0700
Thanks! I knew I was doing it the /old/ way!
-Carl
> On May 13, 2016, at 12:56 PM, Doug Hill <email@hidden> wrote:
>
> I’ve had luck using dispatch queues to accomplish recurring events, specifically dispatch_after. For example:
>
> - (void) doStuffAfterDelay
> {
> dispatch_queue_t theQueue = dispatch_queue_create("Recurring work queue", DISPATCH_QUEUE_SERIAL);
> dispatch_time_t futureTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC));
> dispatch_after(futureTime, theQueue,
> ^{
> DoStuff();
>
> [self doStuffAfterDelay];
> ;});
> }
>
> You can also use an NSTimer that repeats, such as:
>
> NSTimeInterval delaySecs = 5;
> self.timer = [NSTimer scheduledTimerWithTimeInterval:delaySecs
> target:self selector:@selector(doStuff:)
> userInfo:nil repeats:YES];
>
> Hope this helps.
>
> Doug Hill
>
>
>> On May 13, 2016, at 12:34 PM, Carl Hoefs <email@hidden <mailto:email@hidden>> wrote:
>>
>> I want a method running on a background thread to reissue itself after it is done processing. How can I do this?
>>
>> I'm using the following code but it runs just once and is never heard from again...
>>
>> // initial invocation from main thread
>> [self performSelectorInBackground:@selector(_checkSensor:) withObject:@50];
>>
>>
>> // target method on background thread
>> -(void)_checkSensor:(NSNumber *)delaySecs
>> {
>> // check sensor...
>> // processing...
>>
>> // reschedule
>> [NSObject cancelPreviousPerformRequestsWithTarget:self selector:_cmd object:nil];
>> [self performSelector:_cmd withObject:nil afterDelay: delaySecs];
>> }
>>
>> As a test, the above works if run on the main thread, so I'm guessing it has something to do with there being no runloop after the background thread exits.
>> -Carl
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden