当前位置: 首页>>代码示例>>C#>>正文


C# ConcurrentDictionary.Should方法代码示例

本文整理汇总了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);
        }
开发者ID:MrPiotr,项目名称:Alluvial,代码行数:37,代码来源:StreamQueryDistributorTests.cs

示例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);
        }
开发者ID:MrPiotr,项目名称:Alluvial,代码行数:22,代码来源:StreamQueryDistributorTests.cs

示例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);
        }
开发者ID:pete-restall,项目名称:Ichnaea,代码行数:11,代码来源:NEventStoreSessionStreamTest.cs

示例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();
 }
开发者ID:pete-restall,项目名称:Ichnaea,代码行数:7,代码来源:NEventStoreSessionStreamTest.cs

示例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);
         }
     }
 }
开发者ID:pete-restall,项目名称:Ichnaea,代码行数:11,代码来源:NEventStoreSessionStreamTest.cs


注:本文中的ConcurrentDictionary.Should方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。