ebb
ebb

Reputation: 9377

System.Threading.Timer only fires once

Using the code below, the timer only fires once. What am I missing?

public static List<string> Test = new List<string> { "TEST1", "TEST2" };

public static void Start()
{
    var t = new System.Threading.Timer(o =>
    {
        foreach (var item in Test)
        {
            Console.WriteLine("Say hello!"); 
        }
    }, null, 0, 1250);
}

Upvotes: 8

Views: 2832

Answers (1)

SLaks
SLaks

Reputation: 887195

The timer is being collected by the GC before it fires again.
You need to keep it alive by storing it in a field.

Upvotes: 20

Related Questions