2011-05-21 25 views
-2

處理線程的我是新來programming.Event在線程處理可以通過運行循環在目標C事件的目標C

做我必須做的createEvent,ResetEvent,PulseEvent,BeginThread,waitforsingleObject

如何做到這一點的目的C. 是否有很好地解釋了有關使用例如比蘋果文檔等這些概念的任何材料。

+2

這是不夠的信息。這些東西做什麼?你想完成什麼? – 2011-05-21 07:38:03

+0

我需要啓動一個線程做了一些功能,並檢查線程是否已經達到了最大期間它。我CPP設置我們通過AfxBeginThread啓動線程,並通過創建events.How做同樣的waitforsingleobject.and處理事件檢查在目標C. – Angus 2011-05-21 07:57:59

+1

還很不清楚。請編輯你的問題。 – 2013-01-05 02:52:25

回答

2

真的不是很多的信息在這裏繼續下去,但繼承人讀您的文章時浮現在腦海的一些想法。

我看到三個approches這樣:

1)個塊的陣列,其中在所述字典中的鍵被觸發事件的字典,然後當事件管理器獲取事件它循環在陣列上爲該鍵並運行所有

2)建立KVO system在您的事件是你的鑰匙/價值觀和觀察員的處理程序

3)設置一個delegate-protocol system使您的委託處理程序和你的協議映射塊可以解僱的事件

都有優點和缺點,我對1和3我傾向於,但希望幫助!

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非常困難。