Пример #1
0
        public Task <JsonNetResult> MyWork()
        {
            CancellationTokenSource tokenSource = new CancellationTokenSource();
            CancellationToken       token       = tokenSource.Token;

            _counter++;
            int id = _counter;

            CancellationDictionary.Add(id, tokenSource);

            System.Diagnostics.Debug.WriteLine("GetGridResult started. Id: {0}, Time {1}", id, DateTime.Now.ToLongTimeString());
            return(Task.Factory.StartNew(() => GetGridResult(token), token).ContinueWith(t =>
            {
                System.Diagnostics.Debug.WriteLine("GetGridResult ended. Id: {0}, Time {1}", id, DateTime.Now.ToLongTimeString());
                return new JsonNetResult(t.Result);
            }));
        }
Пример #2
0
        public JsonNetResult CancelRequest(int?id)
        {
            JsonModel jsonModel;

            try
            {
                if (!id.HasValue)
                {
                    if (CancellationDictionary.Keys.Count > 0)
                    {
                        id = CancellationDictionary.Keys.First();
                    }
                    else
                    {
                        jsonModel = JsonModel.CreateFailure("There are no requests to cancel");
                        return(new JsonNetResult(jsonModel));
                    }
                }

                if (CancellationDictionary.ContainsKey(id.Value))
                {
                    CancellationDictionary[id.Value].Cancel();
                    System.Diagnostics.Debug.WriteLine(string.Format("GetGridResult cancelled. Id: {0}, Time {1}", id.Value, DateTime.Now.ToLongTimeString()));
                    jsonModel = JsonModel.CreateSuccess(string.Format("Request with Id {0} was cancelled", id.Value));
                }
                else
                {
                    jsonModel = JsonModel.CreateFailure(string.Format("Request with Id {0} was not found", id.Value));
                }
            }
            catch (Exception ex)
            {
                jsonModel = JsonModel.CreateFailure(ex.Message);
            }
            return(new JsonNetResult(jsonModel));
        }