NSOperationQueue
provide the threads used to run their operations.
Create NSInvocationOperation
objects and add it in the array of NSOperationQueue
.
NSInvocationOperation *insertOperationObject1 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(insertMethod1) object:nil];
NSInvocationOperation *insertOperationObject2 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(insertMethod2) object:nil];
NSInvocationOperation *insertOperationObject3 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(insertMethod3) object:nil];
//adding database fetch operations to an NSOperationQueue
NSOperationQueue *m_opqInsertQueue = [[[NSOperationQueue alloc] init] autorelease];
[m_opqCustomerProfileDataFetchQueue setMaxConcurrentOperationCount:1];
[m_opqCustomerProfileDataFetchQueue addOperations:[NSArray arrayWithObjects:insertOperationObject1, insertOperationObject2, insertOperationObject3, nil] waitUntilFinished:NO];