使用GCD的领域

时间:2016-08-25 09:00:27

标签: database multithreading realm grand-central-dispatch

我正在使用客户端 - 服务器应用程序。我正在发送请求,在得到响应后转到backgound线程解析数据,在解析完所有数据后,我将转到主线程。在realm事务中写入的所有数据都存在于后台线程中,但在主线程中它是空的。这是我的代码的一部分: 一开始我有20个对象

add ip, r1, #TI_CPU_SAVE
ldr r3, [r2, #TI_TP_VALUE]
stmia   ip!, {r4 - sl, fp, sp, lr}  @ Store most regs on stack

ldr r6, [r2, #TI_CPU_DOMAIN]
strex   r5, r4, [ip]            @ Clear exclusive monitor

mcr p15, 0, r3, c13, c0, 3      @ set TLS register

mov r4, #0xffff0fff
str r3, [r4, #-15]          @ TLS val at 0xffff0ff0

mcr p15, 0, r6, c3, c0, 0       @ Set domain register
mov r5, r0
add r4, r2, #TI_CPU_SAVE
ldr r0, =thread_notify_head
mov r1, #THREAD_NOTIFY_SWITCH
bl  atomic_notifier_call_chain
mov r0, r5
ldmia   r4, {r4 - sl, fp, sp, pc}   @ Load all regs saved previously

后台线程中提交的数据在主线程中没有出现的问题,我该如何管理呢?

1 个答案:

答案 0 :(得分:1)

请参阅Realm的Seeing Changes from Other Threads文档。

如果Realm.refresh()autorefresh,您需要致电true或等待下一次runloop迭代,以查看主线程中的更改。