У меня есть действие поиска в приложении ASP.NET MVC 3, которое возвращает предложения , содержащие и предложения с тегом с заданными ключевыми словами:
[HttpPost]
public ActionResult Search(string query, int pg = 0)
{
var keywords = query.Split(new[] { ' ', ',', ';' },
StringSplitOptions.RemoveEmptyEntries);
var containing = (from s in _readonlySession.All<Suggestion>()
from k in keywords
where (s.Text.ToLower().Contains(k.ToLower()))
orderby s.Text
select s).Distinct();
var tagged = (from t in _readonlySession.All<Tag>()
from s in t.Suggestions
from k in keywords
where t.Text.ToLower().Contains(k.ToLower())
orderby s.Text
select s).Distinct();
var model = new SearchViewModel
{
Query = query,
Containing = containing.ToList(),
Tagged = tagged.ToList()
};
return View(model);
}
Iдумаю, что запросы containing
и tagged
могли бы идеально выполняться параллельно.
Каков наилучший способ запустить эти два запроса одновременно, дождаться результатов и вернуться только после завершения обоих запросов?