Hello!

Probably you created your time in the worker thread. You should not use for 
this usual method invocations, NSNotificationCenter or performSelector: 
withObject:. Try to use - (void)performSelectorOnMainThread:(SEL)aSelector 
withObject:(id)arg 
waitUntilDone:(BOOL)wait; and create the timer in method invoked in the main 
thread

Oleksiy Gorelov
 

--- Исходное сообщение ---
От кого: "Wyatt Webb" <[email protected]>
Кому: "Abhijeet Singh" <[email protected]>
Дата: 3 сентября, 07:18:56
Тема: Re: NSTimer not working in a multithreaded application

> 
> On Sep 2, 2010, at 7:37 PM, Abhijeet Singh wrote:
> 
> > Hi,I am working on a multithreaded software that runs on a medical 
> > instrument. The software has 2 parts. GUI and worker threads (worker 
> > threads sends commands to instrument). The GUI is developed using 
> > ObjectiveC and Cocoa. Worker threads 
are all in C and Carbon.It is a Cocoa application.I am working on GUI of the 
software.When the application starts it first creates worker threads ( that 
initializes the hardware/instrument). Once the threads are created one of the 
thread sends a message 
back to main thread. My problem isi need to start a timer when the main thread 
receives a message from worker thread. I am starting a timer as follows:timer = 
[[NSTimer scheduledTimerWithTimeInterval:10.0 target:self 
selector:@selector(turnOffLight:) 
userInfo:nil repeats:NO] retain];But it does not work. I debugged it and found 
that the timer is created but "turnOffLight" is never executed.Then I created 
the timer just before worker threads creation and it worked. Can anybody help 
me in resol
> > ving this problem.Thanks &amp; RegardsAbhijeetGet Yourself a cool, short 
> > @in.com Email ID now!Report spam
> > _
> 
> How is the worker thread sending the message back to the main thread? Are you 
> sure that the code is actually executing on the main thread? The NSTimer may 
> not be scheduled on the main thread and that often means it won't get 
> executed.
> 
> If your message back to the main thread is a callback, try using 
> performSelectorOnMainThread: to make sure the code is executed on the proper 
> thread.
> 
> Wyatt_______________________________________________
> 
> Cocoa-dev mailing list ([email protected])
> 
> 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:
> http://lists.apple.com/mailman/options/cocoa-dev/grolm_lists%40ukr.net
> 
> This email sent to [email protected]
> 
> 




_______________________________________________

Cocoa-dev mailing list ([email protected])

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to