public void TimeStampGenerator01() { const int EventCount = 16; var events = new ManualResetEvent[EventCount]; var grabbers = new TimeStampGrabber[EventCount]; // Initialize events and time stamp grabbers. for (int index = 0; index < EventCount; ++index) { events[index] = new ManualResetEvent(false); grabbers[index] = new TimeStampGrabber(events[index]); } // Start all time-stamp grabbers "at one go". var scheduler = new DynamoScheduler(new SampleSchedulerThread(), true); Parallel.For(0, EventCount, ((index) => { grabbers[index].GrabTimeStamp(scheduler); })); WaitHandle.WaitAll(events); var values = new List <TimeStamp>(); for (int index = 0; index < EventCount; ++index) { values.Add(grabbers[index].TimeStampValue); } // Ensure we get a list of time stamps, and that these numbers are // all unique (i.e. the distinct set of numbers returned should have // the same count as the original list). // Assert.AreEqual(EventCount, values.Count); var distinct = values.Distinct(); Assert.AreEqual(values.Count, distinct.Count()); }
public void TimeStampGenerator01() { const int EventCount = 16; var events = new ManualResetEvent[EventCount]; var grabbers = new TimeStampGrabber[EventCount]; // Initialize events and time stamp grabbers. for (int index = 0; index < EventCount; ++index) { events[index] = new ManualResetEvent(false); grabbers[index] = new TimeStampGrabber(events[index]); } // Start all time-stamp grabbers "at one go". var scheduler = new DynamoScheduler(new SampleSchedulerThread()); Parallel.For(0, EventCount, ((index) => { grabbers[index].GrabTimeStamp(scheduler); })); WaitHandle.WaitAll(events); var values = new List<TimeStamp>(); for (int index = 0; index < EventCount; ++index) values.Add(grabbers[index].TimeStampValue); // Ensure we get a list of time stamps, and that these numbers are // all unique (i.e. the distinct set of numbers returned should have // the same count as the original list). // Assert.AreEqual(EventCount, values.Count); var distinct = values.Distinct(); Assert.AreEqual(values.Count, distinct.Count()); }