C# 调用.Dispose()后无法删除域

C# 调用.Dispose()后无法删除域,c#,.net-core,realm,C#,.net Core,Realm,加载我的数据 Uri.TryCreate(realmPath, UriKind.Relative, out var outPathUri); RealmConfigurationBase configuration = new FullSyncConfiguration(outPathUri, _currentUser, _realmFile) { ObjectClasses = typesInSelectedRealm, SchemaVersion = 1 }; _realm

加载我的数据

Uri.TryCreate(realmPath, UriKind.Relative, out var outPathUri);
RealmConfigurationBase configuration = new FullSyncConfiguration(outPathUri, _currentUser, _realmFile)
{
    ObjectClasses = typesInSelectedRealm,
    SchemaVersion = 1
};

_realmInstance = Realm.GetInstance(configuration);

if(_realmInstance != null) _realmInstance.RealmChanged += LoadDataOnChange;
正在尝试从USB驱动器复制格式相同的.realm文件

if(_realmInstance != null) 
{
    _realmInstance.RealmChanged -= LoadDataOnChange; // figure it's good to clear all external references to Realm object
    _realmInstance.Dispose();
    GC.Collect();
    Thread.Sleep(1000); // both of these are me trying to just make darn sure that everything is cleaned up and has had enough time to do so
    Realm.DeleteRealm(_realmInstance.Config); // error
}
引发错误:
进程无法访问文件“…\test.realm”,因为另一个进程正在使用该文件。


我已经看到了,这是我发现的最接近我的问题和可能的解决方案,尽管它是针对IOS的,所以我不确定有多少适用于我的情况。

很可能同步线程仍在使用该领域-例如,如果您向其添加了大量数据,但尚未上载。您可以通过以下方式等待上传完成:

await _realmInstance.GetSession().WaitForUploadAsync();
_realmInstance.Dispose();
// wait a second
// delete
或者手动停止会话(但可能并非所有数据都已上载):


这是适用的。如果你连接到领域-你已连接,它将不可删除。您必须在任何初始连接之前删除它。
_realmInstance.GetSession().Stop();
_realmInstance.Dispose();