public IDocument SearchForDocument(IDocumentSearchCondition condition) { // Get an item for searching document, by the given condition. var item = new SearchDocumentWorkItem(solution, condition); queue.Add(item); // Waiting to the finishing of the workitem. while (item.State != WorkItemState.Completed && item.State != WorkItemState.Failing) ; // Return the result. return item.GetSearchedDocument(); }
internal SearchDocumentWorkItem(ISolution solution, IDocumentSearchCondition condition) { this.solution = solution; this.condition = condition; }