Articles of grand central dispatch

usando dispatch_sync en Grand Central Dispatch

¿Alguien puede explicar con casos de uso realmente claros para qué es el propósito de dispatch_sync en GCD ? No puedo entender dónde y por qué tendría que usar esto. ¡Gracias!

Cómo detener un DispatchWorkItem en GCD?

Actualmente estoy jugando con Grand Central Dispatch y descubrí una clase llamada DispatchWorkItem . La documentación parece un poco incompleta, así que no estoy seguro de usarla de la manera correcta. Creé el siguiente fragmento y esperaba algo diferente. Esperé que el artículo se cancelará después de llamar cancel en él. Pero la iteración continúa […]

¿Por qué no podemos usar un dispatch_sync en la cola actual?

Me encontré con un escenario en el que tenía una callback de delegado que podría ocurrir en el hilo principal u otro hilo, y no sabría cuál hasta el tiempo de ejecución (usando StoreKit.framework ). También tenía el código de UI que necesitaba actualizar en esa callback que tenía que suceder antes de que se […]

NSURLConnection y grand central dispatch

¿Es recomendable cerrar NSUrlConnection en un bloque de estilo gcd y ejecutarlo en una cola low_priority? Necesito asegurarme de que mis conexiones no están sucediendo en el hilo principal y las conexiones deben ser asincrónicas. También necesito varias solicitudes simultáneas para ir a la vez. Si tomo la ruta gcd, no estoy seguro de qué […]

Datos principales e hilos / Grand Central Dispatch

Soy un principiante con Grand Central Dispatch (GCD) y Core Data, y necesito su ayuda para usar Core Data con CGD, para que la UI no esté bloqueada mientras agrego 40,000 registros a Core Data. Sé que el CD no es seguro para subprocesos, así que tengo que usar otro contexto, y luego guardar los […]

Agregar elementos a la matriz Swift en varios subprocesos que causan problemas (porque las matrices no son seguras para subprocesos): ¿cómo puedo evitar eso?

Quiero agregar bloques dados a una matriz, y luego ejecutar todos los bloques contenidos en la matriz, cuando así lo solicite. Tengo un código similar a esto: class MyArrayBlockClass { private var blocksArray: Array Void> = Array() private let blocksQueue: NSOperationQueue() func addBlockToArray(block: () -> Void) { self.blocksArray.append(block) } func runBlocksInArray() { for block in […]

Colas de envío: cómo saber si se están ejecutando y cómo detenerlas

Solo estoy jugando con GCD y he escrito una aplicación CoinFlipper de juguete. Este es el método que arroja las monedas: – (void)flipCoins:(NSUInteger)nFlips{ // Create the queues for work dispatch_queue_t mainQueue = dispatch_get_main_queue(); dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, NULL); // Split the number of flips into whole chunks of kChunkSize and the remainder. NSUInteger numberOfWholeChunks = […]

Hace dispatch_async (dispatch_get_main_queue (), ^ {…}); esperar hasta que termine?

Tengo un escenario en mi aplicación, en el que quiero hacer una tarea que consume mucho tiempo, que consiste en algún procesamiento de datos, así como la actualización de la interfaz de usuario, en un método. Mi método se ve así, – (void)doCalculationsAndUpdateUIs { // DATA PROCESSING 1 // UI UPDATE 1 // DATA PROCESSING […]

¿Última stack de entradas y salidas con GCD?

Tengo una UITableView que muestra imágenes asociadas con contactos en cada fila. En algunos casos, estas imágenes se leen la primera vez que se visualizan desde la imagen de contacto de la libreta de direcciones, y donde no hay ninguna, se representan como un avatar en función de los datos almacenados. Actualmente tengo estas imágenes […]

Esperando hasta que finalice la tarea

¿Cómo puedo hacer que mi código espere hasta que termine la tarea en DispatchQueue? ¿Necesita un CompletionHandler o algo? func myFunction() { var a: Int? DispatchQueue.main.async { var b: Int = 3 a = b } // wait until the task finishes, then print print(a) // – this will contain nil, of course, because it […]