本文整理汇总了C#中DocumentDatabase.Dispose方法的典型用法代码示例。如果您正苦于以下问题:C# DocumentDatabase.Dispose方法的具体用法?C# DocumentDatabase.Dispose怎么用?C# DocumentDatabase.Dispose使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DocumentDatabase
的用法示例。
在下文中一共展示了DocumentDatabase.Dispose方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TryGetOrCreateResourceStore
protected bool TryGetOrCreateResourceStore(string tenantId, out Task<DocumentDatabase> database)
{
if (ResourcesStoresCache.TryGetValue(tenantId, out database))
{
if (database.IsFaulted && database.Exception != null)
{
// if we are here, there is an error, and if there is an error, we need to clear it from the
// resource store cache so we can try to reload it.
// Note that we return the faulted task anyway, because we need the user to look at the error
if (database.Exception.Data.Contains("Raven/KeepInResourceStore") == false)
{
Task<DocumentDatabase> val;
ResourcesStoresCache.TryRemove(tenantId, out val);
}
}
return true;
}
if (LockedDatabases.Contains(tenantId))
throw new InvalidOperationException("Database '" + tenantId + "' is currently locked and cannot be accessed");
var config = CreateTenantConfiguration(tenantId);
if (config == null)
return false;
database = ResourcesStoresCache.GetOrAdd(tenantId, __ => Task.Factory.StartNew(() =>
{
var transportState = databaseTransportStates.GetOrAdd(tenantId, s => new TransportState());
var documentDatabase = new DocumentDatabase(config, transportState);
try
{
AssertLicenseParameters(config);
documentDatabase.SpinBackgroundWorkers();
InitializeRequestResponders(documentDatabase);
// if we have a very long init process, make sure that we reset the last idle time for this db.
documentDatabase.WorkContext.UpdateFoundWork();
}
catch (Exception)
{
documentDatabase.Dispose();
throw;
}
documentDatabase.Disposing += DocumentDatabaseDisposingStarted;
documentDatabase.DisposingEnded += DocumentDatabaseDisposingEnded;
return documentDatabase;
}).ContinueWith(task =>
{
if (task.Status == TaskStatus.Faulted) // this observes the task exception
{
logger.WarnException("Failed to create database " + tenantId, task.Exception);
}
return task;
}).Unwrap());
return true;
}