-(BOOL)KickTimer:(unsigned short) wTimerIds
{
operation1 = [[NSInvocationOperation alloc]initWithTarget:self selector:
@selector(insertEvent:) object:pEvent];
}
-(void)insertEvent:(stRs232Timer*)pEvent
{
//stmts;
}
我无法调用此function.Is
这种调用单个参数的线程是正确的。
pEvent = (stRs232Timer*)[[m_cAppIdMap objectForKey:[NSNumber
numberWithUnsignedShort:wTimerIds]]bytes];
警告:
Warning: passing argument 3 of 'initWithTarget:selector:object:'
from incompatible pointer type
答案 0 :(得分:1)
来自NSOperation class reference:
默认情况下,操作对象是非并发的。在非并发操作中,操作的任务是同步执行的 - 也就是说,操作对象不会创建运行任务的单独线程。因此,当您直接从代码中调用非并发操作的start方法时,操作会立即在当前线程中执行。到这种对象的start方法将控制权返回给调用者时,任务本身就完成了。
考虑使用:
[NSThread detachNewThreadSelector:@selector(insertEvent:) toTarget:self withObject:pEvent];