What is the difference between NSTimer, NSTask, NSThread and NSRunloop and is there a guideline on when to use each of them?<
NSTimer is a timer object, a way to invoke a selector on an object in the future.NSThread is a thread class. I suppose you know what a thread is.NSTask is a process class, a way to run another program from your program.NSOperation (I'm adding to the question) is a very nice abstraction for a single task. You embed your operation in this class and you can easily execute concurrently by means of an NSOperationQueue class.NSRunLoop is the most difficult to understand. In some way abstracts and adapts the select() unix system call, managing input sources and dispatching events and timers on a thread.The guideline is the Apple Threading Programming Guide.