我对var bid = await _applicationDataService.GetSnapshotFromServerAsync(b.BidId.ToString(), b.BidVersion);
if (bid != null)
{
if (await _bidManagerService.CheckIfBidExistsInLocalDbAsync(bid.BidId, bid.BidVersion))
{
await _bidManagerService.OverrideBidInLocalDbAsync(bid);
}
else
{
await _bidManagerService.SaveBidInLocalDbAsync(bid);
}
}
方法有疑问。我的代码如下所示:
await _bidContext.LoadBidByIdAsync(bidId.Value);
在项目的不同地方我有:
foreach (var item in data["result"])
{
JObject obj = (JObject)item;
obj.Property("property").Remove();
}
DataTable dt = JsonConvert.DeserializeObject<DataTable>(data["result"].ToString());
问题是该实体尚未在本地保存,但该方法将尝试加载它。我必须以某种方式等待,直到第一个块将完成下载和保存,然后我必须运行第二个块。
我无法冻结主要威胁,因为用户界面无法响应。
我发现了这样的事情:
答案 0 :(得分:-1)
好的,所以我通过以下方式完成了:
await Task.Run();
在Run方法中我传递了async()=&gt; {我的方法}; 用户界面等待它,它运作良好。 我不幸地对待我的逻辑。
AutoResetEvent对我没用。