【发布时间】:2015-07-23 20:15:45
【问题描述】:
这是我现在写的代码,我想知道它真的是并行运行的。 这是我的 mvc 代码中控制器的一部分。
namespace NewsReader.Controllers
{
public class TestController : Controller
{
public async Task<ActionResult> Index()
{
using (var db = new ApplicationDbContext())
{
var categoryList = db.Categories.Select(item => item.Name).ToList();
var khabaronline = KhabarOnlineTask(categoryList);
var isna = IsnaTask(categoryList);
await Task.WhenAll(khabaronline, isna);
var newsList = new List<NewsDetail>();
newsList.AddRange(khabaronline.Result);
newsList.AddRange(isna.Result);
return View(newsList);
}
}
public Task<List<NewsDetail>> KhabarOnlineTask(List<string> categoryList)
{
var ac = new AgenciesClass();
return Task.Run(() => ac.KhabarOnline(categoryList));
}
【问题讨论】:
-
有两个巨大的功能从两个不同的站点下载图像和上下文。它们是简单的 c# 方法,没有任何 await 和 sync 。我将这两个方法设为 isnatask 和 khabaronlinetask,它们如下所示: public Task
- > KhabarOnlineTask(List
categoryList ) { var ac = new AgenciesClass(); return Task.Run(() => ac.KhabarOnline(categoryList)); } -
那么你需要展示这些方法的代码,或者至少你认为让它们并行运行的部分。最好在编辑您的问题时。
-
这里有一些您可以查看的文档
Using an Asynchronous Controller in ASP.NET MVC: msdn.microsoft.com/en-us/library/ee728598(v=vs.100).aspx -
@mohammaddarbanbaran - 添加代码时,请确保编辑您的帖子并将其添加到那里而不是 cmets - cmets 中的代码不可读。
标签: c# asp.net-mvc parallel-processing task