Я не могу продублировать эту проблему с моей стороны. У меня отлично работает.
Интересно, что вы можете делать в функции TimerCalc_Tick? Все, что вы там делаете, блокирует Диспетчер. Событие не сработает, пока оно не будет завершено. Так что я определенно мог видеть, что что-то напортачило.
После просмотра кода, просмотра видео и воспроизведения его на моей машине, я думаю, что вы просто лишаете себя возможности Dispatcher, когда поднимаетесь на более высокие ставки. Я не уверен, почему прямоугольник полностью перестает вращаться для вас (он не делает это для меня), но если ваш процессор / видеокарта ниже моего, я мог бы видеть, что это разница. Когда я запускаю ползунок полностью влево, как вы делали в своем видео, мой процессор (все четыре ядра) имеет привязку около 40%. Младшая машина была бы хуже этого и, вероятно, могла бы голодать другими нитями.
Если вы берете проект так, как он опубликован выше, и вы просто вносите одно изменение, превращая это:
Public Sub New()
Me.TimerRefresh = New System.Windows.Forms.Timer
Me.TimerRefresh.Interval = Me.Intervall
Me.TimerRefresh.Enabled = True
End Sub
в это:
Public Sub New()
Me.TimerRefresh = New System.Windows.Forms.Timer
Me.TimerRefresh.Interval = Me.Intervall
Me.TimerRefresh.Enabled = False
End Sub
чтобы на самом деле вы не запустили таймер, который берет на себя всю обработку, а затем запустили приложение и запустили ползунок полностью влево, остановился ли прямоугольник? Если это не так, то я уверен, что вы просто голодаете Диспетчер. Если это так ... тогда я все еще в замешательстве.