Swift 3, la création d'une instance DispatchQueue:paramètre cible dans DispatchQueue
DispatchQueue(label: String,
qos: DispatchQoS,
attributes: DispatchQueue.Attributes,
autoreleaseFrequency: DispatchQueue.AutoreleaseFrequency,
target: DispatchQueue?)
Je vois les codes des échantillons de Stackoverflow, il peut être nul, .global() ou .main, quel est le sens de ce paramètre target
?
Je suppose que .main signifie que la file d'attente s'exécutera sur le thread principal, mais qu'en est-il de .nil ou .global()?
Il est toujours déroutant. Quel est le "finalizer" que l'objet va invoquer? Et quelle est la relation avec Qos? – allenlinli
Chaque file d'attente a sa propre priorité comme je l'ai expliqué dans ma réponse. Qos signifie «qualité de service» et vous permet de catégoriser des tâches individuelles dans cette file d'attente. En décrivant le travail en utilisant Qos, vous pouvez vous assurer qu'il est économe en énergie et également définir une sous-priorité dans la file d'attente. Disons donc que vous avez deux morceaux d'interface utilisateur qui s'exécutent sur le thread principal. Vous pouvez indiquer que work1 est une priorité plus élevée que work2 en spécifiant un Qos. – torinpitchers