从主线程中调用的方法内调用方法

时间:2012-07-26 08:56:39

标签: ios multithreading background-process performselector

我已经从appDelegate调用了一个类方法,如下所示:

    RankingAndSMProcess *process = [RankingAndSMProcess alloc];

    [process performSelectorInBackground:@selector(DoRankingAndSocialMediaProcessing) withObject:nil];

    [process release];

此方法调用其他方法:

     @try {
         [self GoForRankingProcess];
         [self updateItemsForPeerindex];
         [self updateItemsForKloat];
         [self updateItemsForKred];
     }
     @catch (NSException *exception) {
         NSLog(@"An Error has been occured:%@", exception);
     }
     @finally { 
         [items release];
         [profile release];
     }

是否必须以与后台线程上的DoRankingAndSocialMediaProcessing相同的方式调用RankingAndSMProcess中的DoRankingAndSocialMediaProcessing方法中调用的所有方法?或者这里有另一个潜在的问题吗?

目前我认为没有任何处理方法被解雇,因为没有收集新数据。

在添加更改调用以在后台执行之前,所有方法和整个过程都按预期工作。

2 个答案:

答案 0 :(得分:0)

其他方法在做什么?如果它是网络请求,则可能需要运行循环,以便后台线程实际上能够执行任务。

答案 1 :(得分:0)

创建NSOperation并将此操作添加到NSOperationQueue。 这将创建一个与主线程并行的新线程,它也将执行您的方法。

以下是一些有用的链接:

NSOperation on the iPhone

http://www.icodeblog.com/tag/nsoperation/

http://www.cimgf.com/2008/02/16/cocoa-tutorial-nsoperation-and-nsoperationqueue/

希望这会对你有所帮助。

享受编码:)