Как стать автором
Обновить

Комментарии 3

Ошибка у вас в реализации Delay: если Timer будет собран сборщиком мусора — он никогда не сработает. Нужна ссылка из возвращаемого MyTask к таймеру.

Это код из оригинальной статьи, сам Стивен говорит о том, что это просто примеры для понимания работы и реальный код конечно сложнее. Можете сами посмотреть реализацию в исходниках. Там как раз ссылка на таймер сохраняется в DelayPromise.

Он будет собран только после сборки MyTask, на которую указывает переменная t. Даже у MS пример аналогичный https://learn.microsoft.com/ru-ru/dotnet/api/system.threading.timer.-ctor?view=net-7.0

https://shorturl.at/ipyE5 попробуйте, поэкспериментируйте, ссылочка на sharplab. все срабатывает.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории