public void TestMultipleAsyncProcessors()
{
const int count = 300000;
AsyncProcessor lockProcessor1 = new AsyncProcessor(false);
AsyncProcessor lockProcessor2 = new AsyncProcessor(false);
AsyncProcessor lockProcessor3 = new AsyncProcessor(false);
AsyncProcessor lockProcessor4 = new AsyncProcessor(false);
ArrayList lockJobs = new ArrayList(count);
for (int i = 0; i < count; ++i)
{
lockJobs.Add(new LockJob());
}
for (int i = 0; i < count; ++i)
{
lockProcessor1.QueueJob((AbstractJob)lockJobs[i]);
lockProcessor2.QueueJob((AbstractJob)lockJobs[i]);
lockProcessor3.QueueJob((AbstractJob)lockJobs[i]);
lockProcessor4.QueueJob((AbstractJob)lockJobs[i]);
}
lockProcessor1.QueueEndOfWork();
lockProcessor2.QueueEndOfWork();
lockProcessor3.QueueEndOfWork();
lockProcessor4.QueueEndOfWork();
lockProcessor1.StartThread();
lockProcessor2.StartThread();
lockProcessor3.StartThread();
lockProcessor4.StartThread();
lockProcessor1.WaitUntilFinished();
lockProcessor2.WaitUntilFinished();
lockProcessor3.WaitUntilFinished();
lockProcessor4.WaitUntilFinished();
}