Вызов потока с одним параметром - PullRequest
0 голосов
/ 03 июня 2011
-(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 Ответ

1 голос
/ 03 июня 2011

С Ссылка на класс NSOperation :

Объекты операций не являются параллельными по умолчанию. В непараллельной операции задача операции выполняется синхронно, то есть объект операции не создает отдельный поток для выполнения задачи. Таким образом, когда вы вызываете метод запуска непараллельной операции непосредственно из своего кода, операция выполняется немедленно в текущем потоке. К тому времени, когда метод запуска такого объекта возвращает управление вызывающей стороне, сама задача завершена.

Рассмотрите возможность использования:

[NSThread detachNewThreadSelector:@selector(insertEvent:) toTarget:self withObject:pEvent];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...