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


C# ConcurrentBag.Add方法代码示例

本文整理汇总了C#中ConcurrentBag.Add方法的典型用法代码示例。如果您正苦于以下问题:C# ConcurrentBag.Add方法的具体用法?C# ConcurrentBag.Add怎么用?C# ConcurrentBag.Add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ConcurrentBag的用法示例。


在下文中一共展示了ConcurrentBag.Add方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Main

        static void Main(string[] args)
        {
            ConcurrentBag<int> bag = new ConcurrentBag<int>();
            bag.Add(42);
            bag.Add(21);

            int result;
            if (bag.TryTake(out result))
            {
                Console.WriteLine(result);
            }

            if (bag.TryPeek(out result))
            {
                Console.WriteLine("There is a next item: {0}", result);
            }

            if (bag.TryTake(out result))
            {
                Console.WriteLine(result);
            }

            Console.Write("Press a key to exit");
            Console.ReadKey();
        }
开发者ID:jbijoux,项目名称:Exam70_483,代码行数:25,代码来源:Program.cs

示例2: Main

        static void Main(string[] args)
        {
            ConcurrentBag<int> bag = new ConcurrentBag<int>();

            bag.Add(123);
            bag.Add(321);
            bag.Add(123123);

            int result;

            if (bag.TryTake(out result))
            {
                Console.WriteLine(result);
            }

            if (bag.TryTake(out result))
            {
                Console.WriteLine(result);
            }

            if (bag.TryPeek(out result))
            {
                Console.WriteLine("There is a next itam: {0}", result);
            }

            Console.ReadLine();
        }
开发者ID:Willamar,项目名称:ExamRef-70-483,代码行数:27,代码来源:Program.cs

示例3: finish_successfully

        public void finish_successfully()
        {
            var handling = new AsyncHandling(ObjectMother.InvocationContext());
            var list = new ConcurrentBag<string>();

            var task1 = Task.Factory.StartNew(() => {
                Thread.Sleep(100);
                list.Add("A");
            });

            var task2 = Task.Factory.StartNew(() => {
                Thread.Sleep(100);
                list.Add("B");
            });

            var task3 = Task.Factory.StartNew(() => {
                Thread.Sleep(100);
                list.Add("C");
            });

            handling.Push(task1);
            handling.Push(task2);
            handling.Push(task3);

            handling.WaitForAll();

            list.OrderBy(x => x).ShouldHaveTheSameElementsAs("A", "B", "C");
        }
开发者ID:RyanHauert,项目名称:FubuTransportation,代码行数:28,代码来源:AsynchHandlingTester.cs

示例4: TestBasicScenarios

        public static void TestBasicScenarios()
        {
            ConcurrentBag<int> cb = new ConcurrentBag<int>();
            Task[] tks = new Task[2];
            tks[0] = Task.Run(() =>
                {
                    cb.Add(4);
                    cb.Add(5);
                    cb.Add(6);
                });

            // Consume the items in the bag 
            tks[1] = Task.Run(() =>
                {
                    int item;
                    while (!cb.IsEmpty)
                    {
                        bool ret = cb.TryTake(out item);
                        Assert.True(ret);
                        // loose check
                        Assert.Contains(item, new[] { 4, 5, 6 });
                    }
                });

            Task.WaitAll(tks);
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:26,代码来源:ConcurrentBagTests.cs

示例5: ParallelTest

        public void ParallelTest()
        {
            var _NumberOfItems = 100000;
            var _ConcurrentBag = new ConcurrentBag<UniqueTimestamps>();

            var _Task1 = Task.Factory.StartNew(() =>
            {
                Parallel.For(0, _NumberOfItems, i =>
                {
                    var _UniqueTS = new UniqueTimestamps();
                    _UniqueTS.ThreadId  = Thread.CurrentThread.ManagedThreadId;
                    _UniqueTS.Timestamp = UniqueTimestamp.Ticks;
                    _ConcurrentBag.Add(_UniqueTS);
                });
            });

            var _Task2 = Task.Factory.StartNew(() =>
            {
                Parallel.For(0, _NumberOfItems, j =>
                {
                    var _UniqueTS = new UniqueTimestamps();
                    _UniqueTS.ThreadId  = Thread.CurrentThread.ManagedThreadId;
                    _UniqueTS.Timestamp = UniqueTimestamp.Ticks;
                    _ConcurrentBag.Add(_UniqueTS);
                });
            });

            Task.WaitAll(_Task1, _Task2);

            var _NumberOfThreads    = (from item in _ConcurrentBag select item.ThreadId ).Distinct().Count();
            var _NumberOfTimestamps = (from item in _ConcurrentBag select item.Timestamp).Distinct().Count();

            Assert.AreEqual(_NumberOfThreads, Environment.ProcessorCount);
            Assert.AreEqual(_NumberOfTimestamps, 2 * _NumberOfItems);
        }
开发者ID:subbuballa,项目名称:Illias,代码行数:35,代码来源:UniqueTimestampTests.cs

示例6: DemoConcurrentBag

        private static void DemoConcurrentBag()
        {
            Console.WriteLine("Demo Concurrent Bag ----------------------");
            var shirts = new ConcurrentBag<string>();
            shirts.Add("Pluralsight");
            shirts.Add("WordPress");
            shirts.Add("Code School");

            Console.WriteLine("After enqueuing, count = " + shirts.Count);

            string item1; //= shirts.Dequeue();
            bool success = shirts.TryTake(out item1);
            if (success)
                Console.WriteLine("\r\nRemoving " + item1);
            else
                Console.WriteLine("queue was empty");

            string item2; //= shirts.Peek();
            success = shirts.TryPeek(out item2);
            if (success)
                Console.WriteLine("Peeking   " + item2);
            else
                Console.WriteLine("queue was empty");

            Console.WriteLine("\r\nEnumerating:");
            foreach (string item in shirts)
                Console.WriteLine(item);

            Console.WriteLine("\r\nAfter enumerating, count = " + shirts.Count);
        }
开发者ID:Jac21,项目名称:GistsCollection,代码行数:30,代码来源:Program.cs

示例7: TestBasicScenarios

        public static void TestBasicScenarios()
        {
            ConcurrentBag<int> cb = new ConcurrentBag<int>();
            Task[] tks = new Task[2];
            tks[0] = Task.Run(() =>
                {
                    cb.Add(4);
                    cb.Add(5);
                    cb.Add(6);
                });

            // Consume the items in the bag 
            tks[1] = Task.Run(() =>
                {
                    int item;
                    while (!cb.IsEmpty)
                    {
                        bool ret = cb.TryTake(out item);
                        Assert.True(ret);
                        // loose check
                        if (item != 4 && item != 5 && item != 6)
                        {
                            Assert.False(true, "Expected: 4|5|6; actual: " + item.ToString());
                        }
                    }
                });

            Task.WaitAll(tks);
        }
开发者ID:gitter-badger,项目名称:corefx,代码行数:29,代码来源:ConcurrentBagTests.cs

示例8: ThenAllTheConferencesAreCreated

        public void ThenAllTheConferencesAreCreated()
        {
            var failureCollector = new ConcurrentBag<string>();

            Parallel.ForEach(slugs, s =>
            {
                var mConf = ConferenceHelper.FindConference(s);
                if(mConf == null)
                {
                    failureCollector.Add(string.Format("Conference with slug '{0}' not found in management repository.", s));
                    return;
                }
                var success = MessageLogHelper.CollectEvents<AvailableSeatsChanged>(mConf.Id, seatsInfo.Rows.Count);
                if(!success)
                {
                    failureCollector.Add(string.Format("Some seats were not found in Conference '{0}'", mConf.Name));
                }
            });

            if(failureCollector.Count > 0)
            {
                var sb = new StringBuilder();
                failureCollector.ToList().ForEach(s => sb.AppendLine(s));
                Assert.True(failureCollector.Count == 0, sb.ToString()); // raise error with all the failures
            }
        }
开发者ID:wayne-o,项目名称:delete-me,代码行数:26,代码来源:MultipleConferenceConfigurationSteps.cs

示例9: AddItemTwice

 public void AddItemTwice()
 {
     var bag = new ConcurrentBag<string>();
     bag.Add("TEST");
     bag.Add("TEST");
     Assert.AreEqual(2, bag.Count);
 }
开发者ID:JasonCozens,项目名称:CodeStructure,代码行数:7,代码来源:ConcurrentBagTests.cs

示例10: World

        public World()
        {
            worldTime = new DateTime();
            rooms = new List<Room>();
            rooms.Add(new Room("The Void", "You are standing in the middle of nothing."));
            mobs = new ConcurrentBag<NPC>();

            NPC test = new NPC("mob", "A slimy sticky stinky mob", new Stats(50, 100), this);
            rooms.First().addNPC(test);
            mobs.Add(test);
            test = new NPC("bob", "A slimy sticky stinky bob", new Stats(50, 100), this);
            rooms.First().addNPC(test);
            mobs.Add(test);
            test = new NPC("sob", "A slimy sticky stinky sob", new Stats(50, 100), this);
            rooms.First().addNPC(test);
            mobs.Add(test);
            test = new NPC("cob", "A slimy sticky stinky cob", new Stats(50, 100), this);
            rooms.First().addNPC(test);
            mobs.Add(test);

            Merchant merch = new Merchant();
            merch.name = "merchant";
            merch.description = "a merchant of souls";
            merch.world = this;
            merch.stats = new Stats(10000, 10000);
            Item i = new Item("health", "a potion of restore health", 1, "none", 1);
            merch.items.addToInventory(i);
            rooms.First().addNPC(merch);
            mobs.Add(merch);

            rooms.First().addItem(new Item("leggings", "a worn pair of leather leggings", 2, "legs", 2));
        }
开发者ID:pboutell,项目名称:amud-server,代码行数:32,代码来源:World.cs

示例11: Compare

        /// <summary>
        /// </summary>
        /// <returns></returns>
        /// <exception cref="AggregateException">The exception that contains all the individual exceptions thrown on all threads.</exception>
        public List<FileInfo> Compare()
        {
            var listFromSetting = ConvertPathsFromSettingToDictionary();
            //var newer = new List<FileInfo>();
            var newer = new ConcurrentBag<FileInfo>();
            var listFromFileSystem = ListFromFileSystem();

            if (listFromSetting.Any() && listFromFileSystem.Any())
            {
                Parallel.ForEach(listFromFileSystem,
                    path =>
                    {
                        var file = new FileInfo(path);
                        if (listFromSetting.Any(item => item.Path == path))
                        {
                            var fromSetting = listFromSetting.First(list => list.Path == path);
                            if (File.Exists(fromSetting.Path) && fromSetting.LastWriteTime < file.LastWriteTime)
                            {
                                newer.Add(file);
                            }
                        }
                        else
                        {
                            newer.Add(file);
                        }
                    });
            }
            return newer.ToList();
        }
开发者ID:evilbaschdi,项目名称:FileWatcher,代码行数:33,代码来源:Worker.cs

示例12: AllPartitionsInParallelTest

 /// <summary>
 /// 	Создает тест с набором партиций и с возможными собственными шаблоном запроса и соединения
 /// </summary>
 /// <param name="query"> </param>
 /// <param name="connection"> </param>
 public AllPartitionsInParallelTest(string query = null,string connection=null)
 {
     _subtests = new ConcurrentBag<SinglePartitionQueryingTest>();
     for (var year = START_YEAR; year <= END_YEAR; year++) {
         _subtests.Add(new SinglePartitionQueryingTest(year, HalfYear.First, query,connection));
         _subtests.Add(new SinglePartitionQueryingTest(year, HalfYear.Second, query,connection));
     }
 }
开发者ID:Qorpent,项目名称:pgGroupByPerftest,代码行数:13,代码来源:AllPartitionsInParallelTest.cs

示例13: Example2

        private void Example2()
        {
            Console.WriteLine("With List multithreading throws an error");
            //List<int> list = new List<int>();
            //Task.Run(() =>
            //{
            //    list.Add(21);
            //    Thread.Sleep(250);
            //    list.Add(43);
            //    Thread.Sleep(500);
            //    list.Remove(21);
            //    Thread.Sleep(500);
            //    list.Add(63);
            //});

            //Task.Run(() =>
            //{
            //    //foreach (int i in list)
            //    //{
            //    //    Thread.Sleep(500);
            //    //    Console.WriteLine(i);
            //    //}
            //    for(int i=0;i<list.Count;i++)
            //    {
            //        Thread.Sleep(500);
            //        Console.WriteLine(list[i]);
            //    }
            //}).Wait();

            Console.WriteLine("With Concurrent Bag");
            ConcurrentBag<int> concurrentBag = new ConcurrentBag<int>();
            int result;
            Task.Run(() =>
            {
                concurrentBag.Add(21);
                concurrentBag.Add(33);
                Thread.Sleep(250);
                concurrentBag.Add(43);
                Thread.Sleep(500);
                concurrentBag.Add(53);
                concurrentBag.TryTake(out result);
                Thread.Sleep(500);
                concurrentBag.Add(63);
            });

            Task.Run(() =>
            {
                foreach (int i in concurrentBag)
                {
                    Thread.Sleep(500);
                    Console.WriteLine(i);
                }
            }).Wait();
        }
开发者ID:mayankaggarwal,项目名称:MyConcepts,代码行数:54,代码来源:Concept17.cs

示例14: Run

 public void Run()
 {
     ConcurrentBag<int> bag = new ConcurrentBag<int>();
     bag.Add(42);
     bag.Add(21);
     int result;
     if (bag.TryTake(out result))
         Console.WriteLine(result);
     if (bag.TryPeek(out result))
         Console.WriteLine("There is a next item: {0}", result);
 }
开发者ID:vikramadhav,项目名称:Certification_70-483,代码行数:11,代码来源:Listing_1_30.cs

示例15: ConcurrentCollectionTest

 //ConcurrentCollectionTest
 public static void ConcurrentCollectionTest()
 {
     ConcurrentBag<string> bag = new ConcurrentBag<string>();
     bag.Add("just a test!");
     bag.Add("abc");
     bag.Add("ARCAS");
     string result;
     bag.TryPeek(out result);
     Console.WriteLine(result);
     BlockingCollection<string> collection = new BlockingCollection<string>();
 }
开发者ID:vjzr-Phonex,项目名称:C_Sharp,代码行数:12,代码来源:Program.cs


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