I would like to create a function that is called periodically (1 second), the function may take more than 1 second. If the function does not complete, a new thread should not be created. If it completes, it should wait till due time. Which timer method would be the best solution in C#?