public void StartThreads(int count) { var container = ChislerContainer.GetInstance(); container.Reset(); for (var i = 0; i < count; i++) { Task.Factory.StartNew(() => CalcTasksStarter(container.Token)); } }
public Chisler Calculate(int threadId, int newPart, CalcRequestEnum сalcRequest, Func <int, int, int> calculator) { var container = ChislerContainer.GetInstance(); var currentChisler = container.GetCalcValue(threadId, сalcRequest); //Расчёт var currentValue = currentChisler.Value == 0 ? 1 : currentChisler.Value; var newValue = calculator(currentValue, newPart); //Обновление контейнера результатов return(container.UpdateCalcValue(threadId, newValue, сalcRequest)); }
public IEnumerable <Chisler> GetCurrentValues(CalcRequestEnum сalcRequest) { var container = ChislerContainer.GetInstance(); return(container.GetCurentCalcValues(сalcRequest)); }
public void StopThreads() { var container = ChislerContainer.GetInstance(); container.TokenSource.Cancel(); }