`Console.ReadLine()` 在 Windows 中执行时会等待输入回车才会继续执行。
但是发布到 Docker 上之后没有得到预想中的结果,程序运行到这里直接结束了。
示例代码如下:
```csharp
static void Main(string[] args)
{
Task.Run(() =>
{
// do somethind
Thread.Sleep(Timeout.Infinite);
});
Console.WriteLine("Press [enter] to exit.");
Console.ReadLine();
Environment.Exit(-1);
}
```
不确定是因为什么原因导致的输入了回车主线程也没有退出 ~~因为启动的线程中使用了 `Thread.Sleep(Timeout.Infinite);`~~,所以在程序的最后通过 `Environment.Exit(-1);` 来退出。
怀疑是因为新线程中创建了 *RabbitMQ* 的订阅导致的。(不明白为什么后台线程会阻止主线程的结束)
~~如果没有该行代码的话,在 windows 中即使输入了回车程序也不会退出。~~
~~怀疑是因为 `Thread.Sleep(Timeout.Infinite);` 导致的。虽然是在后台线程中执行的 Sleep,但是貌似会阻塞主线程的退出(这里不太确定,但从效果上来看是这样的)。~~
删除 `Environment.Exit(-1);` 之后