【发布时间】:2013-10-21 16:08:28
【问题描述】:
我想知道是否可以改进此代码以获得更好的性能。我是服务器端整个异步的新手,所以请耐心等待:
con.GetGame(id, game => {
foreach(Player p in game.Team1)
{
p.SomeExtraDetails = GetPlayerDetails(p.Id);
}
// I would like the player data to be set on all players
// before ending up here
});
private PlayerDetails GetPlayerDetails(double playerId)
{
var task = con.GetPlayer(playerId);
PlayerDetails ret = null;
Task continuation = task.ContinueWith(t =>
{
ret = t.Result;
});
continuation.Wait();
return ret;
}
如果我做对了,continuation.Wait(); 会阻塞主线程。
有没有办法让任务同时运行?
【问题讨论】:
-
你能用 C# 5.0 吗?另外,为什么你的一些方法使用延续和一些
Tasks?我认为如果你保持一致会更好。 -
@svick 我使用的是 VS2012,但我相信它是 .NET 4.5 atm。
-
@Johan 这不是拼写错误 - 它是 C# 5(语言)和 .NET 4.5(框架);)
标签: c# asp.net task-parallel-library