本文整理汇总了C#中ConcurrentDictionary.Should方法的典型用法代码示例。如果您正苦于以下问题:C# ConcurrentDictionary.Should方法的具体用法?C# ConcurrentDictionary.Should怎么用?C# ConcurrentDictionary.Should使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConcurrentDictionary
的用法示例。
在下文中一共展示了ConcurrentDictionary.Should方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: A_lease_can_be_extended
public virtual async Task A_lease_can_be_extended()
{
var tally = new ConcurrentDictionary<string, int>();
var scope = DateTimeOffset.UtcNow.Ticks.ToString();
var distributor1 = CreateDistributor(scope: scope).Trace();
var distributor2 = CreateDistributor(scope: scope).Trace();
Func<Lease, Task> onReceive = async lease =>
{
tally.AddOrUpdate(lease.LeasableResource.Name,
addValueFactory: s => 1,
updateValueFactory: (s, v) => v + 1);
if (lease.LeasableResource.Name == "5")
{
// extend the lease
await lease.Extend(TimeSpan.FromDays(2));
// wait longer than the lease would normally last
await Task.Delay((int) (DefaultLeaseDuration.TotalMilliseconds*5));
}
};
distributor1.OnReceive(onReceive);
distributor2.OnReceive(onReceive);
await distributor1.Start();
await distributor2.Start();
await Task.Delay((int) (DefaultLeaseDuration.TotalMilliseconds * 2.5));
await distributor1.Stop();
await distributor2.Stop();
Console.WriteLine(tally.ToLogString());
tally.Should().ContainKey("5")
.And
.Subject["5"].Should().Be(1);
}
示例2: An_interval_can_be_specified_before_which_a_released_lease_will_be_granted_again
public async Task An_interval_can_be_specified_before_which_a_released_lease_will_be_granted_again()
{
var tally = new ConcurrentDictionary<string, int>();
var distributor = CreateDistributor(waitInterval: TimeSpan.FromMilliseconds(5000)).Trace();
var countdown = new AsyncCountdownEvent(10);
distributor.OnReceive(async lease =>
{
tally.AddOrUpdate(lease.LeasableResource.Name,
addValueFactory: s => 1,
updateValueFactory: (s, v) => v + 1);
countdown.Signal();
});
await distributor.Start();
await countdown.WaitAsync().Timeout();
await distributor.Stop();
tally.Count.Should().Be(10);
tally.Should().ContainKeys("1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
tally.Should().ContainValues(1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
}
示例3: Dispose_CalledWhenEventStreamThrowsAnException_ExpectStreamRemovesItselfFromTheSessionCollection
public void Dispose_CalledWhenEventStreamThrowsAnException_ExpectStreamRemovesItselfFromTheSessionCollection()
{
var eventStream = StubEventStream();
eventStream.When(x => x.Dispose()).Do(_ => { throw new Exception(); });
var sessionCollection = new ConcurrentDictionary<Guid, IEventStream>();
var stream = new NEventStoreSessionStream(sessionCollection, eventStream);
stream.Invoking(x => x.Dispose()).ShouldThrow<Exception>();
sessionCollection.Should().NotContainValue(stream);
}
示例4: Dispose_Called_ExpectStreamRemovesItselfFromTheSessionCollection
public void Dispose_Called_ExpectStreamRemovesItselfFromTheSessionCollection()
{
var sessionCollection = new ConcurrentDictionary<Guid, IEventStream>();
var stream = new NEventStoreSessionStream(sessionCollection, DummyEventStream());
stream.Dispose();
sessionCollection.Should().BeEmpty();
}
示例5: Constructor_CalledMultipleTimes_ExpectStreamAddsItselfToTheSessionCollectionWithDifferentGuids
public void Constructor_CalledMultipleTimes_ExpectStreamAddsItselfToTheSessionCollectionWithDifferentGuids()
{
var sessionCollection = new ConcurrentDictionary<Guid, IEventStream>();
using (var firstStream = new NEventStoreSessionStream(sessionCollection, DummyEventStream()))
{
using (var secondStream = new NEventStoreSessionStream(sessionCollection, DummyEventStream()))
{
sessionCollection.Should().ContainValues(firstStream, secondStream);
}
}
}