我有一个基于代理的小型建模框架,我正在编写它作为项目的一部分。不同的代理都在自己的线程中运行,主管类控制它们的生命周期。所以主管类可以取消这些线程。我知道有一种isCancelled
方法NSThread
。使用它,是否可以接受以下成语:
#import <Foundation/Foundation.h>
#import "BugThread.h"
#import "Bug.h"
@implementation BugThread
- (id) initWithBug: (Bug*) aBug {
if((self = [super init])) {
[bug autorelease];
bug = [aBug retain];
}
return self;
}
- (void) main {
GSRegisterCurrentThread();
while(![self isCancelled]) {
//bug does its stuff
}
}