2010-09-28 18 views
0

我有兩個線程主線程和工作線程。我希望能夠做到的是將回調(委託)安排給工作者線程,而不管誰調用觸發這些委託的函數。例如:目標C中的代表僅在特定線程上

/* mainThread */ 
[Obj asyncCallback]; // triggers callback to delegate foo() 

/* Worker thread should do all the callback processing. i.e when foo() is called [NSThread currentThread] should always give worker threads ID and never main threads ID. */ 

回答

0

也許最簡單的選擇是-performSelector:onThread:waitUntilDone:。你需要確保你的工作線程啓動了一個run loop

+0

我談論的代表是內核生成的,即我是一些將執行異步的調用。當任務完成時,內核會檢查預期的回調是否存在,如果存在,則會通知該回調。我不認爲performSelector會適用於我的情況。 – blacklife 2010-09-28 17:49:04

+0

你的例子是一個Objecive C消息。如果可以執行[obj asyncCallback],您可以執行-performSelector:onThread:waitUntilDone:假設您有一個NSThread對象,並且線程處於運行循環中。 – JeremyP 2010-09-29 08:42:00