Example #1
0
        /// <summary>
        /// Invoke an auto-play session, with the specified number of runs.
        /// The auto-play session is invoked as a separate Task
        /// </summary>
        public async Task Run(long noOfRuns)
        {
            CurrentAutoPlayState = Enums.AutoPlayState.Running;
            _logicSymbolGenerator.Reset();

            _percentCompleted = 0;

            lock (_lock)
            {
                _autoRunData = new Dictionary <int, int>();
            }

            _cancellationTokenSource = new CancellationTokenSource();
            Task autoRunTask = new Task(() => { AutoRun(noOfRuns, _cancellationTokenSource.Token); }, _cancellationTokenSource.Token);

            autoRunTask.Start();
            await autoRunTask;

            AutoRunCompleted(noOfRuns, _cancellationTokenSource.Token);
        }