public ActionResult GetAttributes(string ItemNumber, Guid?InfoTemplateID) { //var ProductAttributes = _db.GetProductAttributes(ItemNumber.Trim()).ToList(); //var Attributes = _db.GetProductAndCategoryAttributesAndValues(ItemNumber, InfoTemplateID).ToList(); //var AttributeSettings = _db.GetAttributeTypeSettings().ToList(); List <GetProductAttributesResult> ProductAttributes = null; List <GetProductAndCategoryAttributesAndValuesResult> Attributes = null; List <GetAttributeTypeSettingsResult> AttributeSettings = null; Parallel.Invoke(() => { var db = new DataEntryDataContext(); ProductAttributes = db.GetProductAttributes(ItemNumber.Trim()).ToList(); }, () => { var db = new DataEntryDataContext(); Attributes = db.GetProductAndCategoryAttributesAndValues(ItemNumber, InfoTemplateID).ToList(); }, () => { var db = new DataEntryDataContext(); AttributeSettings = db.GetAttributeTypeSettings().ToList(); }); return(GetAttributes(ProductAttributes, Attributes, AttributeSettings)); }