我有代码:
Task<string> pageIdTask;
using (var seedSession = this.dbSessionManager.Start(agencyId))
{
pageIdTask = seedSession.Query<ModelInfo>()
.Where(mi=> mi.Id == modelId)
.Select(mi=> mi.Tag)
.SingleAsync();
}
var tokenTask = this.tokenManager.GetAsync(agencyId);
await Task.WhenAll(pageIdTask, tokenTask);
string pageId = pageIdTask.Result;
var token = tokenTask.Result;
这是对的吗?我的意思是,如果在使用语句中初始化它,可以等待任务吗?
或者更好地在使用语句中等待任务?
答案 0 :(得分:2)
在awating在其外部的using()语句范围内创建的任务没有技术限制,但在大多数情况下,这意味着任务的逻辑取决于使用内部的任何内容( )现在处理。 所以一般来说这样的事情还可以:
df1 = (np.log(df1) * s) ** 3
print (df1)
A B C D
0 97.664572 286.409295 678.896108 1364.068975
1 33.351293 71.933325 170.508622 5431.168861
2 33.351293 329.617932 368.145163 1364.068975
3 84.862013 286.409295 678.896108 1364.068975
4 21.313578 198.944581 781.316579 3772.578718
5 84.862013 198.944581 170.508622 4603.732789
6 33.351293 198.944581 575.466599 5431.168861
7 97.664572 71.933325 781.316579 2945.161306
但在大多数实际情况中会像:
Task task;
using(var something = GetSomething()){
task = otherThing.CompletelyUnrelatedLogic();
}
task.Wait(); // no prob