Why can't you do your UI updates from your custom dispatch queue by 
enclosing them in dispatch_async blocks that execute on the main dispatch 
queue?

Jordan

On Monday, November 16, 2015 at 12:57:29 PM UTC-6, Brendan Duddridge wrote:
>
> I don’t understand … why are you unable?
>>
>>
> If a big database transaction is occurring on the main thread, how can I 
> update the UI at the same time? Basically as I'm fetching objects from the 
> database, I post notifications or update an NSProgress object which should 
> update the UI, but that just doesn't happen if I don't use the 
> dispatchQueue. When database access is happening on a background thread, 
> I'm able to post notifications to the main thread to update the UI. But if 
> database access is happening on the main thread, those notifications don't 
> run until after and then it's too late because it's over by then. Basically 
> I just see no progress activity until it's done.
>
> I also have bindings to my model objects that display things such as the 
> name of a form or the name of a field. So when KVO updates those from a 
> background thread, that's where the crashes happen as it's trying to update 
> the UI because of the notifications.
>
> Thanks,
>
> Brendan
>
>
>
> On Monday, November 16, 2015 at 9:51:22 AM UTC-7, Jens Alfke wrote:
>>
>>
>> On Nov 15, 2015, at 11:23 PM, Brendan Duddridge <[email protected]> 
>> wrote:
>>
>> However, I ran into a problem with replication. Because replication 
>> happens on a background thread, the KVO notifications of objects being 
>> created isn't happening on the main thread so I'm getting crashes.
>>
>>
>> The notifications happen on the database's thread/queue. So if you’re 
>> using a custom dispatchQueue, that’s where the notifications will be 
>> delivered.
>>
>> To work around this problem I've stopped using my custom dispatchQueue, 
>> but that also means I am unable to update the UI to show progress 
>> indicators and status messages.
>>
>>
>> I don’t understand … why are you unable?
>>
>> —Jens
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Couchbase Mobile" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mobile-couchbase/7c931577-b39c-4fd9-9dd7-b0dd7bffd49f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to