From Xojo Documentation


ConsoleApplication.DoEvents([milliseconds As Integer])

Supported for all project types and targets.

Yields time back to your app so that it can handle other events.


By design, console applications do not have a main event loop. It implies that classes relying on such event loop will not work as expected.

You can call DoEvents in the Run event of your console application to create your own main event loop. If you use Timers or sockets in a console application and fail to periodically call App.DoEvents, sockets will not work and Timer.Action will never fire.

Sample Code

// In the Run event of your console application

Var consoleTimer As New MyTimerSubclass
consoleTimer.RunMode = Timer.RunModes.Multiple // Don't forget this one
consoleTimer.Period = 1000 // Call every second


where myTimerSubclass is a subclass of Timer whose Action event holds the code you want to run each time the timer is called. Since this creates an infinite loop, press Control-C in the terminal to stop the app.