Как я могу запустить мои собственные асинхронные ожидаемые методы?
Я вижу, что писать асинхронный метод в некоторых случаях легко, как пирог:
private async Task TestGeo()
{
Geolocator geo = new Geolocator();
Geoposition pos = await geo.GetGeopositionAsync();
double dLat = pos.Coordinate.Latitude;
double dLong = pos.Coordinate.Latitude;
}
... но, к сожалению, также видно, что не любой метод может быть сделан асинхронно волей-неволей; для остроумия: это не работает:
private async Task TestAsyncAwait()
{
int i = await TaSLs_Classes.TASLsUtils.GetZoomSettingForDistance(5);
}
... он останавливает меня с ошибкой компиляции: "Не могу ждать int"; подсказка о времени разработки также говорит мне: "Тип" int "не является ожидаемым"
Я также пробовал это с теми же результатами:
Task<int> i = await TaSLs_Classes.TASLsUtils.GetZoomSettingForDistance(5);
Что я должен сделать, чтобы мои методы были доступны?
UPDATE
Как указал Linebacker и S. Cleary (любое отношение к этому коту, который раньше был на KNBR?), это работает:
int i = await Task.Run(() => TaSLs_Classes.TASLsUtils.GetZoomSettingForDistance(5));
... то есть он компилируется, но он никогда не "движется".
Во время выполнения он сообщает мне, что я должен "ждать" CALL для TestAsyncAwait(), но если я это сделаю, он вообще не компилируется...