} // процент выполнения задачи public SynonymTask(IList <string> names, uint pricecode, IndexerHandler owner) { State = TaskState.None; priceCode = pricecode; this.names = names; handler = owner; id = DateTime.Now.Ticks; matches = new Dictionary <string, SynonymSummary>(); thread = new Thread(ThreadWork); StartDate = DateTime.UtcNow; Rate = 0; thread.Start(); State = TaskState.Running; }
public WcfSynonymBox FindSynonymsResult(string taskId) { var handler = (IndexerHandler)Monitor.GetInstance().GetHandler(typeof(IndexerHandler)); var task = handler.GetTask(Convert.ToInt64(taskId)); if (task == null) { return new WcfSynonymBox { Status = TaskState.Error, Message = String.Format("Задача {0} не найдена", taskId) } } ; if (task.State == TaskState.Error) { return new WcfSynonymBox { Status = TaskState.Error, Message = task.Error } } ; if (task.State == TaskState.Success) { return(IndexerHandler.TransformToSynonymBox(task.Matches)); } if (task.State == TaskState.Running) { return new WcfSynonymBox { Status = TaskState.Running, Message = task.Rate.ToString() } } ; if (task.State == TaskState.Canceled) { return new WcfSynonymBox { Status = TaskState.Canceled, Message = task.Rate.ToString() } } ; return(new WcfSynonymBox { Status = task.State }); }