コード例 #1
0
ファイル: RiportTask.cs プロジェクト: lagzikovacs/ossCore
        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);
        }
コード例 #2
0
ファイル: RiportTask.cs プロジェクト: lagzikovacs/ossCore
        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);
            }
        }