// Using normal functions void func() { writeln("Timer end"); } import std.functional: toDelegate; setTimeout(toDelegate(&func), 6000); // Using inline delegates setTimeout(delegate void() { writeln("Timer end"); }, 6000); // Interval setInterval(delegate void() { writeln("Timer tick"); }, 10); // Stop timer // After stopping timer it cannot be restarted AsyncTimer timer = setInterval(delegate void() { writeln("Timer tick"); }, 10); timer.stop(); // Adjusting timer values // Will be adjusted on next cycle (aka after 10 msec) timer = setInterval(delegate void() { writeln("Timer tick"); }, 10); timer.timespan = 50; timer.interval = false; // will prevent timer from running next cycle
Executes delegate on timeout or interval