**I’m pretty sure that the TimerManager will recognize that the timer was already running **and restart the existing timer, because none of the timers in my project got broken by upgrading to 4.7
However if you want to be absolutely sure you can just clear the timer yourself before restarting
The only thing that changed for me in 4.7 timers was just how to keep track of them to clear them / check if they are running from a function other than the one in which they were created.
The behavior of restarting the same timer by just calling it again seems to be unchanged!
.h
FTimerHandle MyLoopingTimerHandle;
.cpp
//some func that starts timer
{
GetWorldTimerManager().ClearTimer(MyLoopingTimerHandle);
GetWorldTimerManager().SetTimer(MyLoopingTimerHandle, &YourClass::YourFunc, 0.01,true );
}
//some func that stops the timer normally
{
GetWorldTimerManager().ClearTimer(MyLoopingTimerHandle);
}
You could test both ways, calling the clear yourself as above, and then just omitting that first clear, let us know what happens!
Again all my research so far leads me to believe that if the timer manager is already running a timer and gets a request to start that same timer again, it will just restart the current one.
If 4.7 timers worked differently than 4.6 and prior it would have broken a lot of code that relied on non-duplication of timers, so I think the extra ClearTimer is unnecessary but might be emotionally comforting (which is always nice when not inefficient).
Rama