我又遇到了一些问题。
我的Razor文件@code块中有两种方法。
protected override async Task OnInitializedAsync()
和
protected override async Task OnAfterRender()
我希望OnAfterRender()仅在OnInitializedAsync()完成执行之后执行。我到处都在寻找如何解决它的方法,但这似乎没有在任何地方讨论。关于如何实现此目标的任何想法?
谢谢。
答案 0 :(得分:1)
我真的很惊讶该框架尚未处理。您是否忘了等待与await
关键字一起使用的东西?
无论如何,当我必须同步线程时,我使用WaitHandle
您的代码可能是:
private ManuelResetEvent _syncEvent = new ManualResetEvent(false);
protected override async Task OnInitializedAsync()
{
await awaitableStuff();
_syncEvent.Set();
}
protected override async Task OnAfterRender()
{
_syncEvent.WaitOne();
await otherAwaitableStuff();
}
别忘了处置WaitHandle
。