Я пытаюсь получить результат использования метода в другом вызове.
Var 'AuthToken' будет установлен с событием, максимум 500 мс после того, как я подключусь к authSocket
Я пытался использовать async / await, но при переходе через отладчик в VS2017 код продолжает
gameSocket = new Client_TBDGame(...)
до того, как authSocket.GetAuthToken(...)
даже вернется.
Если кто-нибудь может взглянуть, это было бы здорово! Может быть, существует совершенно другое решение для моей проблемы?
У меня есть следующий код:
public static async Task<string> Init(string _ip)
{
if (!IsHostUp(_ip))
{
Debug.LogWarning("Cannot connect to Server!");
return "ERROR_SERVER_UNREACHABLE";
}
authSocket = new Client_Authenticate(_ip, Settings.SERVER_PORT);
token = await authSocket.GetAuthToken().ConfigureAwait(false);
// Connect to /game endpoint
gameSocket = new Client_TBDGame(_ip, Settings.SERVER_PORT, token);
return "SUCCESS";
}
Client_Authenticate
public async Task<string> GetAuthToken()
{
// Cancel after 15 tries and return "ERROR_TIMEOUT"
for (int i = 0; i < 15; i++)
{
if (AuthToken != null || AuthToken != "")
return AuthToken;
await Task.Delay(100);
}
return "ERROR_TIMEOUT";
}