Я заметил, что. NET Core 3 Task
s не работают на моих виртуальных серверах на основе Ubuntu 18.04 (провайдерами являются Strato.de и HostEurope.de).
Вот очень основа c тестовая программа:
static void Main(string[] args) {
Console.WriteLine("Hello");
Task.Delay(2000).ContinueWith(_ => Console.WriteLine("Fire"));
Thread.Sleep(5000);
Console.WriteLine("Exit");
}
Приложение должно немедленно напечатать "Hello"
, затем через 2 секунды "Fire"
и, наконец, "Exit"
. Это прекрасно работает на моем компьютере Windows, а также на компьютере Ubuntu 18.04.
Но когда я запускаю код на виртуальных серверах, второе сообщение никогда не печатается. Также Threading.Timer
и Timers.Timer
имеют ту же проблему, они почти никогда не запускаются (иногда, но очень редко, они делают).
EDIT: Оба виртуальных сервера работают на OpenVZ , в по крайней мере, это то, что говорит systemd-detect-virt
. Я изменил название вопроса соответственно.
Есть идеи, в чем может быть проблема?