> On May 8, 2020, at 15:13, Rob Petrovec via Cocoa-dev > <cocoa-dev@lists.apple.com> wrote: > > > >>> On May 8, 2020, at 12:19 PM, Jens Alfke via Cocoa-dev >>> <cocoa-dev@lists.apple.com> wrote: >>> >>> >>> >>>> On May 8, 2020, at 9:53 AM, Gabriel Zachmann via Cocoa-dev >>>> <cocoa-dev@lists.apple.com> wrote: >>> >>> So, I was thinking, maybe it helps to load the next image concurrently, >>> while the current one is still being displayed. >> >> Sure. Just be aware that if you're using NSImage, simply loading an NSImage >> does not rasterize it; the class tries to be 'lazy' about doing work. So >> your background task should explicitly render it, e.g. into an >> NSBitmapImageRep. >> >>> I also read about the GCD's dispatch queues, but it seems to me that this >>> would not be the suitable approach since I always only have one task >>> running concurrently to the main thread. >> >> Why not? Dispatch queues are always available. (The main thread is simply a >> special queue.) You can run the background task by creating a single >> dispatch queue and then using dispatch_async to call a block that does the >> work. The end of the block would call dispatch_async back to the main queue >> and pass the image as a parameter. > I second the use of GCD. Its also considerably simpler than NSThread, > NSOperationQueue/NSOperation et al. This is the kind of operation that GCD > was invented for.
I would add, that for a long running process, open ended work, or task, I would favor a thread. But for short and finite items I would favor GCD/NSOperationQueue. Are you going to only load one image, the next image, in this concurrent loading scenario? Or, will you be loading many images and caching them? I would imaging looking one or two ahead would be the choice. I’m just trying to understand the need/use case. If there’s lots of overhead that can be reduced to a one time effort than maybe a thread is better. If not maybe a one-off throw-it-in-a-queue and be done with it approach is better? Sandor > > —Rob > > > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/cocoa-dev/admin.szatmari.net%40gmail.com > > This email sent to admin.szatmari....@gmail.com _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com