powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сделать параметр Func<T> асинхронным
12 сообщений из 12, страница 1 из 1
Сделать параметр Func<T> асинхронным
    #39832756
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть (упрощенно):
Код: c#
1.
2.
3.
4.
private T Query<T>(string uri, Func<T> query)
{
    return query();
}

Нужно

Код: c#
1.
2.
3.
4.
private async Task<T> Query<T>(string uri, ??? query)
{
    return await query();
}


Как описать query, чтобы студия не ругалась на отсутствие GetAwaiter?
...
Рейтинг: 0 / 0
Сделать параметр Func<T> асинхронным
    #39832764
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
Func<Task<T>>
...
Рейтинг: 0 / 0
Сделать параметр Func<T> асинхронным
    #39832770
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо
...
Рейтинг: 0 / 0
Сделать параметр Func<T> асинхронным
    #39832798
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какой то очень сомнительный код, вы как минимум один лишний раз делайте await, ожидать await query() не имеет смысла, можно просто вернуть его из метода Query и ожидать "выше".

Цель то какая?
...
Рейтинг: 0 / 0
Сделать параметр Func<T> асинхронным
    #39832917
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше так
Код: c#
1.
2.
3.
4.
 private async Task<T> Query<T>(string uri, Func<T> query)
        {
            return await Task.Factory.FromAsync(query.BeginInvoke, query.EndInvoke, null);
        }
...
Рейтинг: 0 / 0
Сделать параметр Func<T> асинхронным
    #39832968
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman MejtesЦель то какая?синхронный говнокод сделать асинхронным.
...
Рейтинг: 0 / 0
Сделать параметр Func<T> асинхронным
    #39833014
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesкакой то очень сомнительный код, вы как минимум один лишний раз делайте await, ожидать await query() не имеет смысла, можно просто вернуть его из метода Query и ожидать "выше".

Цель то какая?

напрмер QueryAsync для обращения к БД или кэшу
(отвечаю за ТС, извиняйте)
...
Рейтинг: 0 / 0
Сделать параметр Func<T> асинхронным
    #39833015
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyRoman MejtesЦель то какая?синхронный говнокод сделать асинхронным.

это не получится :(
...
Рейтинг: 0 / 0
Сделать параметр Func<T> асинхронным
    #39833044
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
love_bach
это не получится :(
Эт почему?
...
Рейтинг: 0 / 0
Сделать параметр Func<T> асинхронным
    #39833047
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВЛучше так
Код: c#
1.
2.
3.
4.
 private async Task<T> Query<T>(string uri, Func<T> query)
        {
            return await Task.Factory.FromAsync(query.BeginInvoke, query.EndInvoke, null);
        }



query от этого не стал асинхронным :)
...
Рейтинг: 0 / 0
Сделать параметр Func<T> асинхронным
    #39833229
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesожидать await query() не имеет смысла, можно просто вернуть его из метода Query и ожидать "выше". я, кстати не против, как это буквами записать? с async/await работал эпизодически и бессознательно, путаюсь в синтаксисе.
...
Рейтинг: 0 / 0
Сделать параметр Func<T> асинхронным
    #39833260
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
недавно была хорошая статья про Async\Await на хабре , почитайте
да и вообще информации вагон и маленькая тележка, так как FW 4.5 уже "сто лет в обед".
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сделать параметр Func<T> асинхронным
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]