예제 #1
0
파일: Program.cs 프로젝트: cdonges/test
        public double Calc(int factorial, int numThreads)
        {
            // Start at one higher because first thing we do is decrement
            this.unallocated = factorial + 1;

            // Create and start workers
            Worker[] work = new Worker[numThreads];
            Thread[] threads = new Thread[numThreads];

            // create and start threads
            for (long i = 0; i < numThreads; i++)
            {
                work[i] = new Worker(this);
                Thread thread = new Thread(work[i].Start);
                threads[i] = thread;
                thread.Start();
            }

            // wait for threads to finish
            foreach (var thread in threads)
            {
                thread.Join();
            }

            // Multiply the results of workers
            double result = 1;
            for (long i = 0; i < numThreads; i++)
            {
                result *= work[i].total;
            }

            return result;
        }
예제 #2
0
 private static void initSocket(String ip, int port)
 {
     worker = new Worker(ip, port);
     Thread workerThread = new Thread(worker.DoWork);
     workerThread.Start();
 }