本文整理汇总了C#中KeyValueDB.StartWritingTransaction方法的典型用法代码示例。如果您正苦于以下问题:C# KeyValueDB.StartWritingTransaction方法的具体用法?C# KeyValueDB.StartWritingTransaction怎么用?C# KeyValueDB.StartWritingTransaction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KeyValueDB
的用法示例。
在下文中一共展示了KeyValueDB.StartWritingTransaction方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EmptyWritingTransaction
public void EmptyWritingTransaction()
{
using (var fileCollection = new InMemoryFileCollection())
using (IKeyValueDB db = new KeyValueDB(fileCollection))
{
using (var tr = db.StartWritingTransaction().Result)
{
tr.Commit();
}
}
}
示例2: StartWritingTransactionWorks
public void StartWritingTransactionWorks()
{
using (var fileCollection = new InMemoryFileCollection())
using (IKeyValueDB db = new KeyValueDB(fileCollection))
{
var tr1 = db.StartWritingTransaction().Result;
var tr2Task = db.StartWritingTransaction();
var task = Task.Factory.StartNew(() =>
{
var tr2 = tr2Task.Result;
Assert.True(tr2.FindExactKey(_key1));
tr2.CreateKey(Key2);
tr2.Commit();
tr2.Dispose();
});
tr1.CreateKey(_key1);
tr1.Commit();
tr1.Dispose();
task.Wait(1000);
using (var tr = db.StartTransaction())
{
Assert.True(tr.FindExactKey(_key1));
Assert.True(tr.FindExactKey(Key2));
}
}
}
示例3: TwoEmptyWriteTransactionsWithNestedWaiting
public void TwoEmptyWriteTransactionsWithNestedWaiting()
{
using (var fileCollection = new InMemoryFileCollection())
using (IKeyValueDB db = new KeyValueDB(fileCollection))
{
Task<IKeyValueDBTransaction> trOuter;
using (var tr = db.StartWritingTransaction().Result)
{
trOuter = db.StartWritingTransaction();
tr.Commit();
}
using (var tr = trOuter.Result)
{
tr.Commit();
}
}
}
示例4: PreapprovedCommitAndCompaction
public void PreapprovedCommitAndCompaction()
{
using (var fileCollection = new InMemoryFileCollection())
{
using (var db = new KeyValueDB(fileCollection, new NoCompressionStrategy(), 1024))
{
using (var tr = db.StartWritingTransaction().Result)
{
tr.CreateOrUpdateKeyValue(_key1, new byte[1024]);
tr.CreateOrUpdateKeyValue(Key2, new byte[10]);
tr.Commit();
}
db.Compact(new CancellationToken());
using (var tr = db.StartWritingTransaction().Result)
{
tr.EraseRange(0, 0);
tr.Commit();
}
db.Compact(new CancellationToken());
using (var db2 = new KeyValueDB(fileCollection, new NoCompressionStrategy(), 1024))
{
using (var tr = db2.StartTransaction())
{
Assert.False(tr.FindExactKey(_key1));
Assert.True(tr.FindExactKey(Key2));
}
}
}
}
}