Я изучаю / экспериментирую с консольным приложением SpotifyAPI.Net DotNetCore и испытываю проблемы с чтением пользовательского ввода с консоли. Я думаю, что console.readline () в главном потоке (используется для поддержки консольного приложения) имеет приоритет перед тем, что есть в одном из моих методов. Как получить консольный ввод, если он поддерживает основной поток в одно и то же время?
Я искал это несколько дней, но все, что я могу найти, - это вопросы о том, как поддерживать консольные приложения живыми.
Я начинаю думать, что мне лучше использовать какой-то простой интерфейс?
в моем основном методе:
AuthorizationCodeAuth auth =
new AuthorizationCodeAuth(_clientId, _secretId, "http://localhost:4002", "http://localhost:4002",
Scope.PlaylistReadPrivate | Scope.PlaylistReadCollaborative);
auth.AuthReceived += AuthOnAuthReceived;
auth.Start();
auth.OpenBrowser();
Console.ReadLine();
auth.Stop(0);
, а затем AuthOnAuthReceived:
{
AuthorizationCodeAuth auth = (AuthorizationCodeAuth) sender;
auth.Stop();
Token token = await auth.ExchangeCode(payload.Code);
SpotifyWebAPI api = new SpotifyWebAPI
{
AccessToken = token.AccessToken,
TokenType = token.TokenType
};
PrintUsefulData(api);
}
PrintusefulData затем делает некоторые вещи, где я хочу получить ввод данных пользовательской консоли с таким дерьмом, как: var input = Console.ReadLine();
Но при отладке он никогда не выходит за пределы этой строки кода, потому что программазавершается, потому что readline в главном потоке получает ввод, а затем завершается.
Я ожидаю, что будет какой-то способ поддерживать консольную программу, одновременно получая некоторый вклад от пользователя в консоли. Но все мои варианты просто заканчиваются из-за пользовательского ввода и никогда не достигают кода, который я хочу использовать для чтения и обработки ввода.
Полагаю, я новичок и упускаю что-то очень очевидное.