/// <see cref="WorkQueue.IRequestHandler.HandleRequest"/> public WorkQueue.Response HandleRequest(WorkQueue.Request req, WorkQueue srcQ) { // Background thread (maybe) var preq = (PageRequest)req.Data; // only deal with own requests; we shouldn't ever get here though if (preq.srcPage != this) { return(null); } var res = new PageResponse(); res.pageData = new PageData(); WorkQueue.Response response; try { PrepareImpl(ref res.pageData); response = new WorkQueue.Response(req, true, res); } catch (Exception e) { // oops response = new WorkQueue.Response(req, false, res, e.Message); } return(response); }
/// <see cref="WorkQueue.IRequestHandler.CanHandleRequest"/> public bool CanHandleRequest(WorkQueue.Request req, WorkQueue srcQ) { var preq = (PageRequest)req.Data; // only deal with own requests // we do this because if we delete a page we want any pending tasks to be discarded if (preq.srcPage != this) { return(false); } else { return(!req.Aborted); } }