Exemplo n.º 1
0
        //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;
                }
            }
Exemplo n.º 3
0
 internal Process(string id, int arrival, int execution)
 {
     this.id = id;
     this.arrival = arrival;
     this.execution = execution;
     this.completed = 0;
     this.executingState = ExecutingState.Waiting;
 }
Exemplo n.º 4
0
 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;
     }
 }