我有一个类costructor:
public AllSignalsViewModel()
{
LoadSignals();
fetchMoreDataCommand = new DelegateCommand(
obj =>
{
if (busy)
{
return;
}
Busy = true;
ThreadPool.QueueUserWorkItem(
delegate
{
Deployment.Current.Dispatcher.BeginInvoke(
delegate
{
AddMoreItems();
Busy = false;
});
});
});
}
LoadSignals()是一个异步函数,但我需要在运行以下代码之前让它结束。但我无法等待它,因为我无法将构造函数设置为async。我应该怎么做?
这是一个LoadSignals()函数:
private async void LoadSignals()
{
var xmlDocument = new XmlDataSource();
var sigCol = new SignalCollection(xmlDocument);
var region = GetRegionInSettingsStorage();
var allSignals = await sigCol.LoadSignals(isVotes(), false, region);
signalSchema = allSignals;
AddMoreItems();
}
怎么办?
答案 0 :(得分:0)
我建议实现一个InitializeAsync方法,该方法在后面的代码中调用(甚至在没有await的构造函数中)。
但是LoadSignals必须返回任务,否则你无法等待它......