Миграция Swift с 2 на 3 dispatch_get_global_queue

У меня есть следующий код, который я пытался перевести в Swift 3 из Swift 2. Вот что у меня есть до сих пор.

DispatchQueue.async(group: DispatchQueue.global(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),execute: {
            self.controllerDelegate?.codeToRun(progressWindowViewController: self)
        })

Я получаю сообщение об ошибке: «Невозможно вызвать «глобальный» со списком аргументов типа (int, int). Я знаю, что это нужно глобальной очереди, если только они не изменили ее в Swift 3? Как правильно создавать глобальные очереди в Swift 3?

Предыдущий эквивалент Swift 2

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),{
            self.controllerDelegate?.codeToRun(self)
        })

person Joseph Astrahan    schedule 28.09.2016    source источник
comment
Также здесь: stackoverflow .com/questions/37805885/.   -  person Martin R    schedule 28.09.2016


Ответы (2)


Попробуйте это, это сработает.

DispatchQueue.global(qos: .background).async {

    DispatchQueue.main.async {

    }
})

Если вам все еще нужна помощь, не стесняйтесь спрашивать здесь.

person JAck    schedule 28.09.2016
comment
Большое спасибо именно то, что я искал. Я предполагаю, что они сделали что-то вроде нового класса qos: теперь для описания различных типов потоков. - person Joseph Astrahan; 28.09.2016
comment
всегда приветствую чувак.. - person JAck; 28.09.2016
comment
мой предыдущий код начинался с асинхронности из основного потока, надеюсь, это не будет проблемой. Мне придется поиграть с этим. Будет ли этот код работать и в обратном порядке? Например, начать с DispatchQueue.main.async? - person Joseph Astrahan; 28.09.2016
comment
Ага. Будет работать в обе стороны.. - person JAck; 28.09.2016
comment
спасибо, вы экономите мое время... - person ikbal; 04.10.2016

На самом деле, более близким и простым подходом к вашему вопросу будет:

DispatchQueue.global(qos: .default).async { ... }

person Ernesto Fernandez    schedule 28.09.2016
comment
Из любопытства, что делает этот ответ быстрее, может измениться, какой ответ принят - person Joseph Astrahan; 12.06.2017
comment
@JosephAstrahan это не быстрее, но определенно ближе к тому, что вы предлагали, имея один блок завершения вместо 2. В любом случае, выбранный ответ также правильный. - person Ernesto Fernandez; 13.06.2017