FROM : Ron Fleckner
DATE : Thu Feb 28 23:16:19 2008
On 29/02/2008, at 8:31 AM, Nate Weaver wrote:
> On Feb 28, 2008, at 3:18 PM, Hank Heijink wrote:
>
>>
>> On Feb 28, 2008, at 2:56 PM, Nate Weaver wrote:
>>
>>>> Interesting... I hadn't thought of that. Don't I have to add
>>>> another timer to the NSDefaultRunLoopMode though? If I have to
>>>> chose between having two timers on the main thread that
>>>> alternate, or one on a secondary thread, I think I'll go with
>>>> the extra thread.
>>>
>>> I don't believe so; I've used it in an app of my own with a
>>> single timer to avoid the same issue you're having, with no
>>> apparent ill effects.
>>
>>
>> That's not my experience. If I just add a timer for the
>> NSEventTrackingRunLoopMode, the only time that timer fires is when
>> the run loop is in event tracking mode, which is what I would
>> expect. In the NSDefaultRunLoopMode, that timer doesn't fire at
>> all. Are you doing something somewhere else to make this happen,
>> or am I missing something?
>
>
> How did you create the timer? Via
> +scheduledTimerWithTimeInterval:... or +timerWithTimeInterval:... ?
> If you use the latter, you'll have to add it to
> NSDefaultRunLoopMode yourself. I just do something like:
>
> myTimer = [[NSTimer scheduledTimerWithTimeInterval:1.0 target:self
> selector:@selector(doTimerStuff:) userInfo:nil repeats:YES] retain];
> [[NSRunLoop mainRunLoop] myTimer forMode:NSEventTrackingRunLoopMode];
>
> and it works during both modes (the retain there probably isn't
> necessary in the general case, either).
Hank, I can confirm this is true using
+scheduledTimerWithTimeInterval: and then adding the timer to the
NSEventTrackingRunLoopMode. No problems running the timer whether
events occur or not.
Ron
DATE : Thu Feb 28 23:16:19 2008
On 29/02/2008, at 8:31 AM, Nate Weaver wrote:
> On Feb 28, 2008, at 3:18 PM, Hank Heijink wrote:
>
>>
>> On Feb 28, 2008, at 2:56 PM, Nate Weaver wrote:
>>
>>>> Interesting... I hadn't thought of that. Don't I have to add
>>>> another timer to the NSDefaultRunLoopMode though? If I have to
>>>> chose between having two timers on the main thread that
>>>> alternate, or one on a secondary thread, I think I'll go with
>>>> the extra thread.
>>>
>>> I don't believe so; I've used it in an app of my own with a
>>> single timer to avoid the same issue you're having, with no
>>> apparent ill effects.
>>
>>
>> That's not my experience. If I just add a timer for the
>> NSEventTrackingRunLoopMode, the only time that timer fires is when
>> the run loop is in event tracking mode, which is what I would
>> expect. In the NSDefaultRunLoopMode, that timer doesn't fire at
>> all. Are you doing something somewhere else to make this happen,
>> or am I missing something?
>
>
> How did you create the timer? Via
> +scheduledTimerWithTimeInterval:... or +timerWithTimeInterval:... ?
> If you use the latter, you'll have to add it to
> NSDefaultRunLoopMode yourself. I just do something like:
>
> myTimer = [[NSTimer scheduledTimerWithTimeInterval:1.0 target:self
> selector:@selector(doTimerStuff:) userInfo:nil repeats:YES] retain];
> [[NSRunLoop mainRunLoop] myTimer forMode:NSEventTrackingRunLoopMode];
>
> and it works during both modes (the retain there probably isn't
> necessary in the general case, either).
Hank, I can confirm this is true using
+scheduledTimerWithTimeInterval: and then adding the timer to the
NSEventTrackingRunLoopMode. No problems running the timer whether
events occur or not.
Ron
| Related mails | Author | Date |
|---|---|---|
| Nate Weaver | Feb 28, 19:46 | |
| Hank Heijink | Feb 28, 20:49 | |
| Nate Weaver | Feb 28, 20:56 | |
| Hank Heijink | Feb 28, 22:18 | |
| Nate Weaver | Feb 28, 22:31 | |
| Hamish Allan | Feb 28, 23:01 | |
| Ron Fleckner | Feb 28, 23:16 | |
| Hank Heijink (Mail… | Feb 29, 20:43 |






Cocoa mail archive

