繁体   English   中英

我们可以将后台线程操作更改为主线程吗?

[英]can we change a background thread operation to main thread?

我如何在viewDidLoad中的后台线程中执行JSON解析,然后单击按钮时将其移至主线程。 现在我尝试了

[self performSelectorInBackground:@selector(parseData) withObject:nil];


-(void)parseData    {

    MSJsonParser *parser = [[MSJsonParser alloc]initWithParserType:kCountriesParsing];
    parser._parserSource = self;
    [parser requestParsingWithUrl:COUNTRIES_URL ];

}

但是我不知道如何将这个后台进程更改为主线程。 请帮我

该方法中要在主线程上运行的部分,只需将其插入此GCD块中,它将在主线程上运行:

dispatch_sync(dispatch_get_main_queue(), ^{
    //put stuff here
});

请参见NSThread中的NSObject(NSThreadPerformAdditions)

 - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait modes:(NSArray *)array;
 - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM