Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Program
- {
- static void Main(string[] args)
- {
- var ev = new CountdownEvent(8);
- var a = DateTime.Now;
- /* ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
- ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
- ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
- ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
- ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
- ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
- ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
- ThreadPool.QueueUserWorkItem(Pi.CountPi, new ThreadData() {Count = 1000000000, Event = ev});
- Console.WriteLine("start");
- ev.Wait();
- */
- var a1 = new Thread(Pi.CountPi);
- var a2 = new Thread(Pi.CountPi);
- var a3 = new Thread(Pi.CountPi);
- var a4 = new Thread(Pi.CountPi);
- var a5 = new Thread(Pi.CountPi);
- var a6 = new Thread(Pi.CountPi);
- var a7 = new Thread(Pi.CountPi);
- var a8 = new Thread(Pi.CountPi);
- a1.Start(new ThreadData()
- {
- Count = 1000000000, Event = ev
- });
- a2.Start(new ThreadData()
- {
- Count = 1000000000, Event = ev
- });
- a3.Start(new ThreadData()
- {
- Count = 1000000000, Event = ev
- });
- a4.Start(new ThreadData()
- {
- Count = 1000000000, Event = ev
- });
- a5.Start(new ThreadData()
- {
- Count = 1000000000, Event = ev
- });
- a6.Start(new ThreadData()
- {
- Count = 1000000000, Event = ev
- });
- a7.Start(new ThreadData()
- {
- Count = 1000000000, Event = ev
- });
- a8.Start(new ThreadData()
- {
- Count = 1000000000, Event = ev
- });
- a1.Join();
- a2.Join();
- a3.Join();
- a4.Join();
- a5.Join();
- a6.Join();
- a7.Join();
- a8.Join();
- Console.WriteLine("stop all");
- Console.WriteLine(DateTime.Now-a);
- }
- }
- public class Pi
- {
- public static void CountPi(object o)
- {
- var c = o as ThreadData;
- int d = 1;
- double pi = 0;
- for (int i = 0; i < c.Count; i++)
- {
- if (i % 2 == 0)
- pi += 1.0 / d;
- else
- pi -= 1.0 / d;
- d += 2;
- }
- Console.WriteLine("kek");
- c.Event.Signal();
- }
- }
- public class ThreadData
- {
- public int Count { get; set; }
- public CountdownEvent Event { get; set; }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement