Проблема в том, что TimerTask.run () не вызывается через 3 секунды, как ожидалось, он вызывается только после того, как WaitForSingleObject () завершает сам.Что я делаю не так?
Простой ответ: вы делаете блокирующий вызов операционной системы.Пока ваш поток заблокирован, TimerTask в этом потоке не сработает.
Даже если вы запустили TimerTask в другом потоке, маловероятно, что прерывание будет работать, поскольку Thread.interrupt является специфической для Java функцией (как@axtavt).
Если вам нужна дополнительная помощь, пожалуйста, создайте еще одну публикацию и объясните, почему вам нужно это сделать и каковы ваши ограничения (что-то более конкретное, чем "... это ломает моюAPI ").Возможно, мы найдем альтернативный подход.