170 похожих чатов

Public static async Task<ServerListItemVM> FindExistingOrLoad(string address) { ServerListItemVM server = null;

bool success = await ExceptionalTaskRun(async () =>
{
Debug.WriteLine("1");
var netAddress = NetAddress.FromString(address);
Debug.WriteLine("2");
server = await GetCachedServer(netAddress);
Debug.WriteLine("3");
if (server != null)
return;
Debug.WriteLine("4");
var gameClient = GetClient(netAddress);
Debug.WriteLine("5");
if (gameClient != null)
{
Debug.WriteLine("6");
server = new ServerListItemVM(gameClient.ServerInfo);
}
else
{
Debug.WriteLine("7");
var serverInfo = await GetServerInfo(netAddress);
Debug.WriteLine("8");
if (serverInfo != null)
{
Debug.WriteLine("9");
server = new ServerListItemVM(serverInfo);
}
}
});
Debug.WriteLine($"{success} {server == null}");
return server;
}

public static async Task<bool> ExceptionalTaskRun(Action action)
{
bool result = true;
await Task.Run(action)
.ContinueWith(async t =>
{
Debug.WriteLine("t: " + t.Status);
if (t.IsFaulted)
{
result = false;
await ExceptionCallback(t.Exception);
}
});
return result;
}


Вывод:

1
2
t: RanToCompletion
True True
3


господа знатоки, подскажите, почему такой порядок вывода? всё ожидается, и по идее "3" должно быть до "True True" и server должен быть НЕ null:

1
2
3
t: RanToCompletion
True False

3 ответов

14 просмотров

Task.Run(action) не ждет action

entdark- Автор вопроса

Что ты вообще хочешь сделать?

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
How to create an OS in C? what to study?
Linus
18
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
14
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Карта сайта