gpt4 book ai didi

objective-c - NSNotification 和 NSThread

转载 作者:行者123 更新时间:2023-12-03 17:42:42 27 4
gpt4 key购买 nike

我使用 NSThread 在单独的线程上创建一个对象。

NSThread* myThread = [[[NSThread alloc] initWithTarget:self selector:@selector(createNewObject:) object:elements] autorelease];
[myThread start]; // Actually start the thread

该对象等待事件。当该事件发生时,默认通知中心会发布通知。

我的 AppController 观察该通知并运行选择器。

NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(myMethod:) name:MyNotification object:nil];

问题:选择器中的方法 (myMethod:) 是在主线程上运行还是在上面的线程 (myThread) 上运行?

最佳答案

您发布通知的同一线程。

In a multithreaded application, notifications are always delivered in the thread in which the notification was posted, which may not be the same thread in which an observer registered itself. (Source)

脚注:对象不能等待事件。对象只是存在。方法可以等待事件。

关于objective-c - NSNotification 和 NSThread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8263576/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com