public static void Generate(string seedType, string _fname, int tThreads, long tSeeds, bool showProcessing, bool generateMatrix) { DateTime now = DateTime.Now; ArrayList arrayList = new ArrayList(); Thread[] array = new Thread[tThreads]; long num = tSeeds / (long)tThreads; long num2 = tSeeds % (long)tThreads; Thread.Sleep(new Random().Next(1, 9)); int num3; int num4; ThreadPool.GetAvailableThreads(out num3, out num4); string text = BaseFunctions.GenerateSupplierLotNumber(tSeeds.ToString(), null); TokenTypeBaseParams tokenTypeBaseParams = new TokenParamsDAO().loadTokenBaseParams(seedType); generateMatrix = (tokenTypeBaseParams.MovingFactorType == TokenMovingFactorType.TransactionAuthenticationNumber); for (int i = 0; i < array.Length; i++) { array[i] = new Thread(new ParameterizedThreadStart(GenerateSeeds.buildSeeds)); array[i].Start(new object[] { tokenTypeBaseParams, (i == 0) ? (num + num2) : num, text, i.ToString(), arrayList, generateMatrix }); } bool flag; do { flag = true; for (int j = 0; j < array.Length; j++) { if (array[j].IsAlive) { Thread.Sleep(1000); flag = false; break; } } }while (!flag); Console.WriteLine(GenerateSeeds.SyncronizeAllFiles(tThreads, _fname, text, generateMatrix) ? (_fname + " created suceffuly") : (_fname + " not created! ERROR!")); Console.WriteLine("Processing completed on [" + DateTime.Now.Subtract(now).ToString() + "]"); }
public static void Generate(string seedType, string _fname, int tThreads, long tSeeds, bool showProcessing, bool generateMatrix) { int intAvailableThreads; int intAvailableIoAsynThreds; DateTime _initProc = DateTime.Now; ArrayList _vSerial = new ArrayList(); Thread[] m_Threads = new Thread[tThreads]; long _processLoad = tSeeds / tThreads; long __processLoad = tSeeds % tThreads; Thread.Sleep(new Random().Next(1, 9)); //induce entropy ThreadPool.GetAvailableThreads(out intAvailableThreads, out intAvailableIoAsynThreds); string _supplierLotNumber = BaseFunctions.GenerateSupplierLotNumber(tSeeds.ToString(), null); TokenTypeBaseParams _tkTypeBaseParams = new TokenParamsDAO().loadTokenBaseParams(seedType); generateMatrix = _tkTypeBaseParams.MovingFactorType == TokenMovingFactorType.TransactionAuthenticationNumber ? true : false; for (int i = 0; i < m_Threads.Length; i++) { m_Threads[i] = new Thread(new ParameterizedThreadStart(buildSeeds)); m_Threads[i].Start(new object[] { (object)_tkTypeBaseParams, (object)(i == 0 ? _processLoad + __processLoad : _processLoad), (object)_supplierLotNumber, (object)i.ToString(), (object)_vSerial, (object)generateMatrix }); } while (true) { bool _fl = true; for (int i1 = 0; i1 < m_Threads.Length; i1++) { if (m_Threads[i1].IsAlive) { Thread.Sleep(1000); _fl = false; break; } } if (_fl) { break; } } Console.WriteLine(SyncronizeAllFiles(tThreads, _fname, _supplierLotNumber, generateMatrix) ? _fname + " created suceffuly" : _fname + " not created! ERROR!"); Console.WriteLine("Processing completed on [" + DateTime.Now.Subtract(_initProc).ToString() + "]"); }