gpt4 book ai didi

objective-c - 在异步派发给它之前是否需要检查当前线程是否是主线程?

转载 作者:搜寻专家 更新时间:2023-10-31 22:20:21 24 4
gpt4 key购买 nike

真的有必要在异步派发之前检查当前线程是否是主线程吗?在性能或其他方面有什么优势吗?

我知道从同一个队列同步调度会导致死锁。但是我真的需要像下面代码段中的人那样检查当前线程吗?

+ (void)dispatchOnMainThread:(void (^)(void))task
{
if ([NSThread isMainThread]) // Is this necessary?
{
task();
}
else
{
dispatch_async(dispatch_get_main_queue(), task);
}
}

最佳答案

But do i really need to check the current Thread like someone did in the following Snippet

不是真的。如果您已经在主线程上,那么当您的代码结束时,您的 dispatch_async block 将被分派(dispatch)。因此可能会有轻微的延迟,因为我们需要当前的运行循环/事务结束,但不会引起注意。

我一直使用 dispatch_async 到主线程,以确保在我不确定的情况下(例如 KVO 回调)我在主线程上。没有伤害,没有犯规。这只是一种保险。

关于objective-c - 在异步派发给它之前是否需要检查当前线程是否是主线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39726177/

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