Как создать консольное приложение, которое не заканчивается, а ожидает событий? - PullRequest
0 голосов
/ 17 марта 2020

Я хочу создать бота с помощью Twitter Stream API. Так что в основном происходит событие, и я что-то делаю.

Я хочу, чтобы он работал в docker контейнере в linux -окружении.

У меня проблема в том, что моя консоль просто закрывается. Вот мой код

public static async Task Main()
{
    var  credentials = new TwitterCredentials(consumerKey: "",
                                              consumerSecret: "",
                                              accessToken: "",
                                              accessTokenSecret: "");    
    var stream = Tweetinvi.Stream.CreateFilteredStream(credentials);

    stream.AddFollow(someUserId,
                     tweet =>
                     {
                         doSomething(tweet);
                     });

    stream.MatchingTweetReceived += (s, e) =>
    {
        doSomething(e.Tweet);
    };

    await stream.StartStreamMatchingAllConditionsAsync();
}

Я жду запуска потока, но консоль закрывается сама. Я не жду никаких событий. Как я могу это изменить?

1 Ответ

0 голосов
/ 17 марта 2020

Звучит так, как будто StartStreamMatchingAllConditionsAsync завершается в какой-то момент, и это приводит к закрытию вашего приложения.

Вам нужно то, что вы можете await включить, но никогда не завершите. Task.Delay может сделать это за вас. Просто сделайте это последней строкой вашей функции:

await Task.Delay(-1);
...