According to this Stack Overflow discussion,using Thread.Sleep() is almost always a bad idea. How would I refactor my code to use a timer instead. I tried to make a start by doing the following:
namespace Engine
{
    internal class Program
    {
        public static DbConnect DbObject = new DbConnect();
        System.Timers.Timer timer = new System.Timers.Timer();
        // error here
        timer.Interval = 2000;
        timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
        timer.Enabled=false;
    }
}
but kept getting a cannot resolve symbol error message.
namespace Engine
{
    internal class Program
    {
    public static DbConnect DbObject = new DbConnect();
    private static void Main()
    {
        SettingsComponent.LoadSettings();
        while (true)
        {
            try
            {
                for (int x = 0; x < 4; x++)
                {
                    GenerateRandomBooking(); 
                }
                Thread.Sleep(2000); 
                GenerateRandomBids();
                AllocateBids();
                Thread.Sleep(2000); 
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }
    }
}