Ejemplo n.º 1
0
        private async Task InternalRunAsync()
        {
            lock (_result)
                _result.Status = RiportTaskStates.Running;

            var exception = await RunAsync();

            lock (_result)
            {
                if (exception == null)
                {
                    _result.Status = _cancelled ? RiportTaskStates.Cancelled : RiportTaskStates.Completed;
                }
                else
                {
                    _result.Status = RiportTaskStates.Error;
                    _result.Error  = exception.InmostMessage();
                }
            }

            // Várunk 1 percet a művelet befejeztével,
            // ennyi ideje van hogy megszerezze az eredményt a kliens.
            Thread.Sleep(new TimeSpan(0, 0, 1, 0));
            // utána eldobjuk a taskot
            RiportTaskManager.TryRemove(_tasktoken);
        }
Ejemplo n.º 2
0
        public RiportTaskResult Check()
        {
            lock (_result)
            {
                switch (_result.Status)
                {
                case RiportTaskStates.Queued:
                case RiportTaskStates.Running:
                    break;

                case RiportTaskStates.Error:
                case RiportTaskStates.Completed:
                    RiportTaskManager.TryRemove(_tasktoken);
                    break;
                }

                return(_result);
            }
        }
Ejemplo n.º 3
0
        public void Start()
        {
            RiportTaskManager.Add(_tasktoken, this);

            var t = Task.Factory.StartNew(InternalRunAsync, _cancellationtoken);
        }