Пример #1
0
        public void ThreadedReaderValueRemoved()
        {
            var comparer = new SynchronizedComparer();

            var dict = new AnalysisDictionary <Hashable, string>(comparer);
            var key  = new Hashable(1, HashEquals);

            dict[key] = "0";
            var thread = new Thread(() => {
                comparer.EqualWaiting.WaitOne();
                dict.Remove(key);
                dict[new Hashable(1)] = "1";
                comparer.DictUpdated.Set();
            });

            thread.Start();

            Assert.IsFalse(dict.ContainsKey(new Hashable(1, HashEquals)));
        }
        public void TestThreadedReaderUpdatedValue()
        {
            var comparer = new SynchronizedComparer();

            var dict = new AnalysisDictionary <Hashable, string>(comparer);
            var key  = new Hashable(1, HashEquals);

            dict[key] = "0";
            var thread = new Thread(() => {
                comparer.EqualWaiting.WaitOne();
                dict.Remove(key);
                dict[new Hashable(1, HashEquals)] = "1";
                comparer.DictUpdated.Set();
            });

            thread.Start();

            Assert.AreEqual("1", dict[new Hashable(1, HashEquals)]);
        }