【发布时间】:2012-04-22 09:13:26
【问题描述】:
//viewcontroller.m
-(void)viewdidLoad
{
self.theOneViewController= [[TheOneViewController alloc]init];
[contentsView addSubview:self.theOneViewController.view];
}
//theOneViewController
- (void)viewDidLoad
{ .
.
.
//UI WORK
.
.
//LONG WORK
[self performSelectorOnMainThread:@selector(initAppList) withObject:nil waitUntilDone:NO];
}
这段代码,在 LONG WORK 结束之前查看显示 UI WORK。所以我可以有一个线程效果。
//viewcontroller.m
-(void) buttonPressed:(id)sender -> event method
{
self.theOneViewController= [[TheOneViewController alloc]init];
[contentsView addSubview:self.theOneViewController.view];
}
//theOneViewController
- (void)viewDidLoad
{ .
.
.
//UI WORK
.
.
//LONG WORK
[self performSelectorOnMainThread:@selector(initAppList) withObject:nil waitUntilDone:NO];
}
在此代码中,在 LONG WORK 结束后查看显示 UI WORK。 所以我不能有线程效果。为什么? 我使用 (performSelectorInBackground:withObject:) 而不是 (performSelectorOnMainThread withObject:waitUntilDone:) 。但这比不使用线程要慢。
我想在事件方法调用中有线程效果。 有什么好办法吗?请帮帮我!
【问题讨论】:
标签: ios multithreading performselector