我正在写一个基础工具。我必须做线程来分离不同的正在进行的任务。
我试图做线程,但它不断地崩溃。最后我找到了原因,我需要运行自己的 runloop。
有人可以提供一些简单的例子吗?我尝试了以下代码,但它不起作用。每次我运行它时,我都会因异常而崩溃?如何在 Foundation 工具中运行线程?
@interface MyClass : NSObject
{
}
-(void) doSomething;
@end
@implementation MyClass
-(void) RunProcess:
{
printf("test");
}
-(void) doSomething:
{
[NSThread detachNewThreadSelector: @selector(RunProcess:) toTarget:self withObject: nil];
}
@end
int main(void)
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
MyClass *myObj = [[MyClass alloc] init],
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.1 myObj selector:@selector(doSomething:) userInfo:nil repeats:NO];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
[[NSRunLoop currentRunLoop] run];
[pool drain];
return 0;
}