petushok55
@petushok55
Обучаюсь на практике.

Как преобразовать этот метод в async?

Не понимаю, куда именно тут нужно поставить await
public static void GetGameInfo(Action callback) // этот метод принимает колбэк, по завершении он вызывается.
    {
//  создаю объект, конвертирую в джейсон
        WebResponse send_object = new WebResponse();
        send_object.action = "getGameInfo";
        send_object.token = "secretToken";
        string json_string = JsonConvert.SerializeObject(send_object);

//  посылаю на сервер через вебсокет
        WebSocketClient.instance.SendAsync(json_string, (e) =>
        { // 
            var r = JsonConvert.DeserializeObject<FirstWebResponse>(e);
            if (r.action == "resultGameInfo")
            {
                Const.users_online_count = r.users_online_count; // допустим обновляю некоторые значения
                callback?.Invoke(); // запускаю колбэк
            }
        });
    }
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ответы на вопрос 1
@NickNamee
Асинхронный метод выполняется вне главного потока. А там нельзя создавать некоторые объекты. В том числе WebRequest. Целиком не получится на асинхрон переделать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы