我有一个在类中调用异步方法的网页(aspx)。 async方法看起来像这样:
{% extends "buylist/header.html" %}
{% block content %}
<table class="table">
<thead class="thead-inverse">
<tr>
<th>#</th>
<th>Name</th>
<th>Price</th>
<th>Quantity</th>
</tr>
</thead>
# For loop getting data from card_data is here
{% for c in card_data %}
{{c}}
{% endfor %}
</table>
{% endblock %}
如果满足条件,我不需要上次存储库调用的数据。最终等待之前的回报是否会引起我的问题?
我问的原因是我在服务器应用程序日志中收到此错误,并且我正在寻找原因...
public async Task<MyThing> GetMyThing()
{
MyThing thing = new MyThing();
var stuff = await Repository.GetStuff();
// apply stuff to thing.
var morestuff = await Repository.GetMoreStuff();
// apply more stuff to thing.
if (someCondition)
{
return thing;
}
var yetMoreStuff = await Repository.GetYetMoreStuff();
// apply yet more stuff
return thing;
}
答案 0 :(得分:7)
是的,不运行某些异步操作完全没问题。你有什么好。什么不会如此之好:
async
即。跨越返回的{{1}}操作。这具有不太明显和可预测的行为,尤其是在同步环境环境中。
你的问题不太可能是因为回归。听起来这只是您的数据代码中发生的NRE,它正在同步上下文回调中出现。