代码:
public ActionResult List(string category, string keyWord, int pageIndex = 1) { Parallel.Invoke(SetDropDownList); Task<List<Book>> task=Task<List<Book>>.Factory.StartNew(()=>{ List<Book> books = null; if (!string.IsNullOrEmpty(category)) { BookQueryCategories cate = (BookQueryCategories)Enum.Parse(typeof(BookQueryCategories), category); books = new BookManager().GetBooks(cate, keyWord); } else { books = new BookManager().GetBooks(); } return books; }); List<Book> book = task.Result; PagedList<Book> pagedBooks = new PagedList<Book>(book, pageIndex, pageSize); //Task t = Task.Factory.StartNew(SetDropDownList); //SetDropDownList(category); ViewData["keyWord"] = keyWord; return View("List", pagedBooks); }
结果前台是一片混乱,求解决方案:
也就是说不用并行的话能显示的好,因为我在View视图中使用foreach输出图书中的书名,作都 ...这样一来全都乱了.
那你为啥非要用并行呢?闻起来香还是喝起来辣?
不用新技术不是程序员?!
什么新技术。我只想在MVC中使用并行开发,如果有好的东西我愿意聆听,大哥。你很厉害我知道...我很希望.NET技术,可是我现在只能攻读Java 为了工作,哎...我有一学生到上海找工作,.NET工程师二年工作经验只给6000,Java能搞到9000
还有我知道前端不应该用并行,乱是必然的...我只贴后台,也想知道这代码有没有问题
@飞鸟Xeon: 所以你判断好不好就是某个时间点钱多不多,这也算一个方法。
你可以并行运算,但不是这样并行..
你在需要顺序运算的地方使用并行计算.那我们能说什么好呢?! 使用场景不对啊