예제 #1
0
        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() + "]");
        }
예제 #2
0
        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() + "]");
        }