diff --git a/src/CalcViewModel/DataLoaders/CurrencyDataLoader.cpp b/src/CalcViewModel/DataLoaders/CurrencyDataLoader.cpp index 48c64d42..0d99e76e 100644 --- a/src/CalcViewModel/DataLoaders/CurrencyDataLoader.cpp +++ b/src/CalcViewModel/DataLoaders/CurrencyDataLoader.cpp @@ -188,7 +188,7 @@ void CurrencyDataLoader::LoadData() { create_task([this]() -> task { - vector()>> loadFunctions = { + vector()>> loadFunctions = { [this]() { return TryLoadDataFromCacheAsync(); }, [this]() { return TryLoadDataFromWebAsync(); }, }; @@ -310,7 +310,7 @@ pair CurrencyDataLoader::GetCurrencyRatioEquality(_In_ const U } #pragma optimize("", off) // Turn off optimizations to work around DevDiv 393321 -task CurrencyDataLoader::TryLoadDataFromCacheAsync() +future CurrencyDataLoader::TryLoadDataFromCacheAsync() { try { @@ -395,7 +395,7 @@ task CurrencyDataLoader::TryFinishLoadFromCacheAsync() co_return true; } -task CurrencyDataLoader::TryLoadDataFromWebAsync() +future CurrencyDataLoader::TryLoadDataFromWebAsync() { try { @@ -480,7 +480,7 @@ task CurrencyDataLoader::TryLoadDataFromWebAsync() } } -task CurrencyDataLoader::TryLoadDataFromWebOverrideAsync() +future CurrencyDataLoader::TryLoadDataFromWebOverrideAsync() { m_meteredOverrideSet = true; bool didLoad = co_await TryLoadDataFromWebAsync(); diff --git a/src/CalcViewModel/DataLoaders/CurrencyDataLoader.h b/src/CalcViewModel/DataLoaders/CurrencyDataLoader.h index eba76641..f2a2a87f 100644 --- a/src/CalcViewModel/DataLoaders/CurrencyDataLoader.h +++ b/src/CalcViewModel/DataLoaders/CurrencyDataLoader.h @@ -72,9 +72,9 @@ namespace CalculatorApp std::pair GetCurrencyRatioEquality(_In_ const UnitConversionManager::Unit& unit1, _In_ const UnitConversionManager::Unit& unit2) override; std::wstring GetCurrencyTimestamp() override; - concurrency::task TryLoadDataFromCacheAsync() override; - concurrency::task TryLoadDataFromWebAsync() override; - concurrency::task TryLoadDataFromWebOverrideAsync() override; + std::future TryLoadDataFromCacheAsync() override; + std::future TryLoadDataFromWebAsync() override; + std::future TryLoadDataFromWebOverrideAsync() override; // ICurrencyConverterDataLoader void OnNetworkBehaviorChanged(CalculatorApp::NetworkAccessBehavior newBehavior); diff --git a/src/CalcViewModel/UnitConverterViewModel.cpp b/src/CalcViewModel/UnitConverterViewModel.cpp index a04b584e..a7d6a54a 100644 --- a/src/CalcViewModel/UnitConverterViewModel.cpp +++ b/src/CalcViewModel/UnitConverterViewModel.cpp @@ -727,7 +727,7 @@ void UnitConverterViewModel::RefreshCurrencyRatios() String^ announcement = AppResourceProvider::GetInstance().GetResourceString(UnitConverterResourceKeys::UpdatingCurrencyRates); Announcement = CalculatorAnnouncement::GetUpdateCurrencyRatesAnnouncement(announcement); - auto refreshTask = create_task(m_model->RefreshCurrencyRatios()); + auto refreshTask = create_task([this] { return m_model->RefreshCurrencyRatios().get(); }); refreshTask.then([this](const pair& refreshResult) { bool didLoad = refreshResult.first; diff --git a/src/CalculatorUnitTests/UnitConverterViewModelUnitTests.h b/src/CalculatorUnitTests/UnitConverterViewModelUnitTests.h index 1e1b57c8..88e55980 100644 --- a/src/CalculatorUnitTests/UnitConverterViewModelUnitTests.h +++ b/src/CalculatorUnitTests/UnitConverterViewModelUnitTests.h @@ -42,7 +42,7 @@ namespace CalculatorUnitTests void SendCommand(UCM::Command command) override; void SetViewModelCallback(const std::shared_ptr& newCallback) override; void SetViewModelCurrencyCallback(_In_ const std::shared_ptr& /*newCallback*/) override {} - concurrency::task> RefreshCurrencyRatios() override + std::future> RefreshCurrencyRatios() override { co_return std::make_pair(L"", L""); }