已关闭,此问题需要details or clarity。它目前不接受回答。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。
2个月前关闭。
Improve this question
在我的WPF应用程序中,我有一个类ObjectBuffer
和一个方法PopulateAsync()
,它工作得很好:缓冲区在另一个线程上被填充,最终将准备好用于程序中的其他地方。调用者代码ButtonPress1
在视图模型中看起来像这样:
Task.Run(() => ObjectBuffer.PopulateAsync());
我希望另一个UI事件ButtonPress2
等待缓冲区填充。理想情况下,它在视图模型中看起来像这样:
other work...
await ObjectBuffer.HasFinished(); // wait until population from ButtonPress1 has finished
ObjectBuffer.DoWorkWithData();
other work...
也许这整个思路是不理想的,即。也许任务本身应该以某种方式表示在ObjectBuffer
中?
1条答案
按热度按时间oxf4rvwz1#
如果我正确地遵循了你的代码,并假设
ObjectBuffer.PopulateAsync()
返回一个Task(它应该返回),那么你可以做以下事情:在你的窗口中有一个字段:
按钮1:
这将使任务运行,但不会等待它。然后,在ButtonPress2中,您可以执行以下操作:
我省略了
populateAsyncTask
是否为null的检查。