我是编程新手。线程中的事件处理可以通过Objective C中的Run Loops来完成。
我必须createEvent,ResetEvent,PulseEvent,BeginThread,waitforsingleObject
。
如何在Objective C中执行此操作 是否有任何材料可以通过苹果文档以外的示例来解释这些概念。
答案 0 :(得分:2)
这里真的不是很多信息,但是在阅读你的帖子时会想到一些想法。
我看到三个方法:
1)块数组的字典,其中字典中的键是被触发的事件,然后当事件管理器获取事件时,它循环遍历该键的数组并运行所有块
2)设置KVO system,其中您的事件是您的键/值,您的观察者是您的处理程序
3)设置delegate-protocol system,以便你的委托是你的处理程序,你的协议映射可以触发的事件
都有利有弊,我倾向于自己1和3,但希望有所帮助!
答案 1 :(得分:1)
我认为问题与将Windows源代码移植到Mac或iOS有关。
不完全答案,但你可以从这里开始。
CreateEvent,ResetEvent,WaitForSingleObject => NSCondition Class Reference
Event
是Windows的独特功能,但却被NSCondtion合理取代。
BeginThread => NSThread Class Reference
更具体地说是+ (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument
方法。
AfxBeginThread(WorkerThreadProc,NULL,THREAD_PRIORITY_NORMAL,0,0,NULL);
=>
[NSThread detachNewThreadSelector:@selector(WorkerThreadProc:) toTarget:self withObject:NULL];
PulseEvent很难移植到Mac或iOS。