public AsyncSQLConnectPuller(int _windowsSize) { windowsSize = _windowsSize; pullValue = new Queue <string>(); enumValue = RunningStatusEnum.NotRunning; tokens = new List <CancellationToken>(); this.RunProcess += AsyncSQLConnectPuller_RunProcess; this.FinishProcess += AsyncSQLConnectPuller_FinishProcess; }
public void operatePull() { if (commandText == String.Empty) { throw new Exception("Не заполнен шаблон текста команды.Операция будет прервана"); } if (connectionString == String.Empty) { throw new Exception("Не заполнена строка соединения.Операция будет прервана"); } if (pullValue.Count == 0) { throw new Exception("Пулл значений пуст.Операция будет прервана"); } ThreadPool.SetMaxThreads(windowsSize, windowsSize); enumValue = RunningStatusEnum.Running; this.RunProcess(); }
private void AsyncSQLConnectPuller_FinishProcess() { Global.mainWindow.incrementProgress(regionID); lock (pullValue) { if (pullValue.Count > 0) { InitConnection(); } else { if (QueueSize == 0 && enumValue != RunningStatusEnum.Completed) { this.enumValue = RunningStatusEnum.Completed; Global.mainWindow.notify(); } } } }
private void AsyncSQLConnectPuller_FinishProcess() { lock (pullValue) { if (pullValue.Count > 0) { InitConnection(); } else { if (QueueSize == 0 && enumValue != RunningStatusEnum.Completed) { this.enumValue = RunningStatusEnum.Completed; Console.WriteLine("Обработка завершена"); } } } }
public AsyncStatusChangedEventArgs(RunningStatusEnum oldStatus, RunningStatusEnum newStatus) { this.oldStatus = oldStatus; this.newStatus = newStatus; }