Mercurial > pub > ImplabNet
comparison Implab.Test/AsyncTests.cs @ 17:7cd4a843b4e4 promises
Improved worker pool
author | cin |
---|---|
date | Fri, 08 Nov 2013 01:25:42 +0400 |
parents | 5a4b735ba669 |
children | e3935fdf59a2 |
comparison
equal
deleted
inserted
replaced
16:5a4b735ba669 | 17:7cd4a843b4e4 |
---|---|
97 Assert.AreNotEqual(pid, p.Join()); | 97 Assert.AreNotEqual(pid, p.Join()); |
98 } | 98 } |
99 | 99 |
100 [TestMethod] | 100 [TestMethod] |
101 public void WorkerPoolSizeTest() { | 101 public void WorkerPoolSizeTest() { |
102 var pool = new WorkerPool(5, 10); | 102 var pool = new WorkerPool(5, 10, 0); |
103 | 103 |
104 Assert.AreEqual(5, pool.ThreadCount); | 104 Assert.AreEqual(5, pool.ThreadCount); |
105 | 105 |
106 pool.Invoke(() => { Thread.Sleep(1000000); return 10; }); | 106 pool.Invoke(() => { Thread.Sleep(1000000); return 10; }); |
107 pool.Invoke(() => { Thread.Sleep(1000000); return 10; }); | 107 pool.Invoke(() => { Thread.Sleep(1000000); return 10; }); |
117 pool.Dispose(); | 117 pool.Dispose(); |
118 } | 118 } |
119 | 119 |
120 [TestMethod] | 120 [TestMethod] |
121 public void WorkerPoolCorrectTest() { | 121 public void WorkerPoolCorrectTest() { |
122 var pool = new WorkerPool(); | 122 var pool = new WorkerPool(0,1000,100); |
123 | 123 |
124 int iterations = 1000; | 124 int iterations = 1000; |
125 int pending = iterations; | 125 int pending = iterations; |
126 var stop = new ManualResetEvent(false); | 126 var stop = new ManualResetEvent(false); |
127 | 127 |
242 } | 242 } |
243 | 243 |
244 [TestMethod] | 244 [TestMethod] |
245 public void ChainedMapTest() { | 245 public void ChainedMapTest() { |
246 | 246 |
247 using (var pool = new WorkerPool(1,10)) { | 247 using (var pool = new WorkerPool(8,100,0)) { |
248 int count = 10000; | 248 int count = 10000; |
249 | 249 |
250 double[] args = new double[count]; | 250 double[] args = new double[count]; |
251 var rand = new Random(); | 251 var rand = new Random(); |
252 | 252 |