插入目标C

| 我正在将cpp代码移植到目标C。 我是这个程序设计的新手。 我必须启动一个线程,该线程正在调用一个名为timeoutThread的函数。在一个名为insert()的函数中,他们正在使用setEvent(m_Thread)设置一个事件,在timeoutThread函数中,它们正在通过调用waitforsingleobject(m_thread,)等待事件。延迟)。并且在waitforsingleObject的正上方,他们正在通过setEvent(m_ThreadEvent)设置另一个事件,并在超时线程函数中进行其他操作。 我创建了一个NSOperationQueue并使用initWithTarget:toTarget:object调用了该函数,但是我该如何设置事件并像在Objective C中的cpp中一样进行通知。 通过一个简单的示例对此进行任何解释对于像我这样的初学者都是非常有帮助的。     
已邀请:
我承认并没有完全依靠Windows来完成这些事情,但是我想如果您仅在等待单个标志时想要的原始语言是NSConditionLock。每个条件锁都有一个特定的条件,线程可以在不考虑该条件的情况下尝试锁定它,或者仅在它具有特定的条件时才尝试锁定它,这两个方法都可能会超时。然后,他们可以解锁并在需要时设置新条件。 可能更直接的方法是手动创建NSThreads,而不仅仅是将操作卸载到NSOperationQueue中。每个NSThread自动具有一个NSRunloop,因此您可以使用如下语义:
[object performSelector:@selector(operation:) onThread:targetThread withObject:someArgumentForOperation waitUntilDone:NO];
在这种情况下,一旦机会出现,将立即在被提名线程上使用被提名参数调用方法“ operation:\”,并且不会阻塞调用线程。 Runloops解决了与经典Win32消息分发机制相同的问题,但是却逆转了责任-Cocoa处理阻塞线程,唤醒消息并发出适当的函数调用。     

要回复问题请先登录注册