使用单个参数调用线程

时间:2011-06-03 11:17:17

标签: objective-c

-(BOOL)KickTimer:(unsigned short) wTimerIds
    {
        operation1 = [[NSInvocationOperation alloc]initWithTarget:self selector:
                                         @selector(insertEvent:) object:pEvent];
    }

-(void)insertEvent:(stRs232Timer*)pEvent
{
 //stmts;
}

我无法调用此function.Is这种调用单个参数的线程是正确的。

EDITED

pEvent = (stRs232Timer*)[[m_cAppIdMap objectForKey:[NSNumber   
                          numberWithUnsignedShort:wTimerIds]]bytes];

警告:

Warning: passing argument 3 of 'initWithTarget:selector:object:' 
from incompatible pointer type

1 个答案:

答案 0 :(得分:1)

来自NSOperation class reference

  

默认情况下,操作对象是非并发的。在非并发操作中,操作的任务是同步执行的 - 也就是说,操作对象不会创建运行任务的单独线程。因此,当您直接从代码中调用非并发操作的start方法时,操作会立即在当前线程中执行。到这种对象的start方法将控制权返回给调用者时,任务本身就完成了。

考虑使用:

[NSThread detachNewThreadSelector:@selector(insertEvent:) toTarget:self withObject:pEvent];