В какой очереди GCD, основной или нет, я работаю?

Я пытаюсь написать несколько потоковобезопасных методов, поэтому я использую:

...
dispatch_queue_t main = dispatch_get_main_queue();
dispatch_sync(main,^{
  [self doSomethingInTheForeground];
});
...

Но если я нахожусь в основном потоке, в этом нет необходимости, и я могу пропустить все эти диспетчерские вызовы, поэтому я хотел бы знать, в каком потоке я сейчас нахожусь. Как я могу это узнать?

Или, может быть, это не имеет значения (в производительности)?

Можно ли проводить это сравнение?

if (dispatch_get_main_queue() == dispatch_get_current_queue()){...}
10
задан Josh Caswell 27 August 2013 в 19:19
поделиться