Xamarin领域无效方法

时间:2016-12-09 23:18:26

标签: xamarin realm

  

Realm对其访问的数据版本保持读锁定,因此对不同线程上的Realm所做的更改不会修改或删除此Realm看到的数据。调用此方法会释放读锁定,允许磁盘上使用的空间被以后的写入事务重用,而不是增长文件

Xamarin.Realm中是否存在匹配功能,例如Objc / Swift的RLMRealm invalidate

如果没有,这是一个积压项目,还是C#包装器不需要(?)。

2 个答案:

答案 0 :(得分:1)

我认为调用Realm.Refresh()将是一种解决方法 - 它将导致Realm实例放弃它当前的读锁定并将其移动到最新版本,这将释放旧版本以进行压缩。 / p>

如果您运行的线程有一个正在运行的CFRunLoopALooper,通常会自动将读锁定移动到最新版本,但在专用的工作线程中,您将负责自己调用Refresh()来推进读锁定。

如果Invalidate()不适合您,请Refresh()yourGameObject.GetComponent<Animation>().GetClip("YOUR_CLIP_NAME").SampleAnimation(yourGameObject, GetComponent<Animation>()["YOUR_CLIP_NAME"].length);打开一个问题。

答案 1 :(得分:0)

我认为你会使用Realm.Close()。看到: https://realm.io/docs/xamarin/latest/api/class_realms_1_1_realm.html#a7f7a3199c392465d0767c6506c1af5b4

  

如果尚未关闭,则关闭领域。安全地反复呼叫。请注意,这将关闭该文件。对同一线程上同一数据库的其他引用将失效。