Example #1
0
        public virtual void TestSetMultiThreaded()
        {
            SetOnce<int?> set = new SetOnce<int?>();
            SetOnceThread[] threads = new SetOnceThread[10];
            Random random = Random();
            for (int i = 0; i < threads.Length; i++)
            {
                threads[i] = new SetOnceThread(random);
                threads[i].Name = "t-" + (i + 1);
                threads[i].Set = set;
            }

            foreach (ThreadClass t in threads)
            {
                t.Start();
            }

            foreach (ThreadClass t in threads)
            {
                t.Join();
            }

            foreach (SetOnceThread t in threads)
            {
                if (t.Success)
                {
                    int expectedVal = Convert.ToInt32(t.Name.Substring(2));
                    Assert.AreEqual(expectedVal, t.Set.Get(), "thread " + t.Name);
                }
            }
        }
Example #2
0
        public virtual void TestSetMultiThreaded()
        {
            SetOnce <Integer> set = new SetOnce <Integer>();

            SetOnceThread[] threads = new SetOnceThread[10];
            Random          random  = Random;

            for (int i = 0; i < threads.Length; i++)
            {
                threads[i]      = new SetOnceThread(random);
                threads[i].Name = "t-" + (i + 1);
                threads[i].set  = set;
            }

            foreach (ThreadJob t in threads)
            {
                t.Start();
            }

            foreach (ThreadJob t in threads)
            {
                t.Join();
            }

            foreach (SetOnceThread t in threads)
            {
                if (t.success)
                {
                    int expectedVal = Convert.ToInt32(t.Name.Substring(2));
                    Assert.AreEqual(expectedVal, t.set.Get().value, "thread " + t.Name);
                }
            }
        }