Exemplo n.º 1
0
        private void Calculate(InputData inputData, CalculateConfig config)
        {
            CalculateBase service;

            switch (inputData.DataType)
            {
            case DataType.Yilei:
                inputData.RandP = _sameRandomNumber1;
                service         = new Ph1Ph2Pv();
                break;

            case DataType.Erlei:
                inputData.RandP = _sameRandomNumber2;
                service         = new Ph1PvPh2();
                break;

            case DataType.Sanlei:
                inputData.RandP = _sameRandomNumber3;
                service         = new PvPh1Ph2();
                break;

            default:
                service = null;
                break;
            }

            if (config.RandomNumberType == RandomNumberType.RandomNumberPerRecord)
            {
                var random = new ThreadSafeRandom();
                var rp     = (inputData.RandomNumberEnd - inputData.RandomNumberStart) * random.NextDouble();
                inputData.RandP = rp + inputData.RandomNumberStart;
            }

            service?.ParallelRun(config, inputData);
            _recordStack.Add(inputData);
        }