//private bool isWorkStopped() //{ // int ordersCountOld = ordersCount; // ordersCount = state.CountOrders() + state.CountTargetOrders(); // bool t = ordersCountOld == ordersCount; // return t; //} public void GoToUpdates() { currentStateStarted = DateTime.UtcNow; executingState = ExecutingState.OrdersCreation; state.ClearOrders(); ordersGenerator.CreateUpdatesOrders(CancellationToken.None).Wait(); ordersGenerator.CreateGetNewGroupsOrders(CancellationToken.None).Wait(); executingState = ExecutingState.UpdatesLoading; }
public static void Execute <TArg>(TArg arg, System.Action <T, TArg> functor) { if (_state != ExecutingState.None) { throw new System.InvalidOperationException("Can not globally broadcast a message currently executing."); } if (_receivers == null || _receivers.Count == 0) { return; } _state = ExecutingState.Executing; try { var e = _receivers.GetEnumerator(); while (e.MoveNext()) { if (e.Current is UnityEngine.Object && (e.Current as UnityEngine.Object) == null) { //skip & remove destroyed objects Remove(e.Current); } else { try { functor(e.Current, arg); } catch (System.Exception ex) { Debug.LogException(ex); } } } } finally { _state = ExecutingState.CleaningUp; if (_toRemove != null) { var e = _toRemove.GetEnumerator(); while (e.MoveNext()) { _receivers.Remove(e.Current); } _toRemove.Dispose(); _toRemove = null; } if (_toAdd != null) { var e = _toAdd.GetEnumerator(); while (e.MoveNext()) { _receivers.Add(e.Current); } _toAdd.Dispose(); _toAdd = null; } _state = ExecutingState.None; } }
internal Process(string id, int arrival, int execution) { this.id = id; this.arrival = arrival; this.execution = execution; this.completed = 0; this.executingState = ExecutingState.Waiting; }
internal void execute(int timeSlice, int threadTime) { _start = ((completed == 0) ? threadTime : _start); executingState = ExecutingState.Executing; completed += timeSlice; //TODO: Show Execution if (completed < execution) return; else { executingState = ExecutingState.Finished; _finish = threadTime; } }