private void RunFirstWriteThread()
        {
            const int maxIterations = 1000;
            DateTime  dt            = new DateTime(2017, 12, 31);
            Random    rnd           = new Random();

            for (int idx = 0; idx < maxIterations; idx++)
            {
                UserType     key1 = new UserType(dt.AddDays(-idx));
                const string key2 = "Developers";

                _concurentCollection.Add(key1, key2, rnd.Next(1, 15));
            }
        }
コード例 #2
0
        public void LinqComparisonTest()
        {
            _thSafeCollection = new ThreadSafeCompositeKeyCollection <int, DateTime, string>();
            _kvpDictionary    = new Dictionary <KeyValuePair <int, DateTime>, string>();

            Random   rnd = new Random();
            DateTime dt  = DateTime.Today;

            string value = "Developers";

            for (int idx = 0; idx < 100000; idx++)
            {
                var datetime = dt.AddDays(-idx);
                _kvpDictionary.Add(new KeyValuePair <int, DateTime>(idx, datetime), value);
                _thSafeCollection.Add(idx, datetime, value);
            }

            int      key1 = 55000;
            DateTime key2 = DateTime.Today.AddDays(-55000);
            var      customCollectionSearchTime     = CountSearchTimeOnCustomCollection(key1, key2);
            var      dictionaryCollectionSearchTime = CountSearchTimeOnDictionary(key1, key2);


            dt = new DateTime(1900, 01, 01);
            for (int idx = 0; idx < 100000; idx++)
            {
                var datetime = dt.AddDays(idx);
                value = "Managers";
                _kvpDictionary.Add(new KeyValuePair <int, DateTime>(idx, datetime), value);
                _thSafeCollection.Add(idx, datetime, value);
            }

            var customCollectionSearchTime2     = CountSearchTimeOnCustomCollection(key1, key2);
            var dictionaryCollectionSearchTime2 = CountSearchTimeOnDictionary(key1, key2);


            dt = new DateTime(1500, 01, 01);
            for (int idx = 0; idx < 100000; idx++)
            {
                var datetime = dt.AddMinutes(idx);
                value = "Testers";
                _kvpDictionary.Add(new KeyValuePair <int, DateTime>(idx, datetime), value);
                _thSafeCollection.Add(idx, datetime, value);
            }

            var customCollectionSearchTime3     = CountSearchTimeOnCustomCollection(key1, key2);
            var dictionaryCollectionSearchTime3 = CountSearchTimeOnDictionary(key1, key2);

            dt = new DateTime(2200, 01, 01);
            for (int idx = 0; idx < 100000; idx++)
            {
                var datetime = dt.AddMinutes(idx);
                value = "Analytics";
                _kvpDictionary.Add(new KeyValuePair <int, DateTime>(idx, datetime), value);
                _thSafeCollection.Add(idx, datetime, value);
            }

            var customCollectionSearchTime4     = CountSearchTimeOnCustomCollection(key1, key2);
            var dictionaryCollectionSearchTime4 = CountSearchTimeOnDictionary(key1, key2);

            Debug.WriteLine("customCollectionSearchTime = {0}", customCollectionSearchTime);
            Debug.WriteLine("dictionaryCollectionSearchTime = {0}", dictionaryCollectionSearchTime);
            Debug.WriteLine("customCollectionSearchTime2 = {0}", customCollectionSearchTime2);
            Debug.WriteLine("dictionaryCollectionSearchTime2 = {0}", dictionaryCollectionSearchTime2);
            Debug.WriteLine("customCollectionSearchTime3 = {0}", customCollectionSearchTime3);
            Debug.WriteLine("dictionaryCollectionSearchTime3 = {0}", dictionaryCollectionSearchTime3);
            Debug.WriteLine("customCollectionSearchTime4 = {0}", customCollectionSearchTime4);
            Debug.WriteLine("dictionaryCollectionSearchTime4 = {0}", dictionaryCollectionSearchTime4);
        }