Windows Service Sample

X# is very well suited for Windows Services. A Windows Service is a GUI less application that runs in the background of any Windows machine, and even without any logged in user. Therefore services are well suited for background tasks.

The .NET Framework has a base class for all Windows Services: the ServiceBase class from the System.ServiceProcess namespace: https://docs.microsoft.com/en-uk/dotnet/api/system.serviceprocess.servicebase

The X# code is very simple:

class XsharpService inherit ServiceBase
constructor()             
 
  super()
  self:InitializeComponent() 
 
return
 
virtual method InitializeComponent() as void
 
  self:ServiceName := "Xsharp Service"
  self:EventLog:Log := "Application"
 
  // These Flags set whether or not to handle that specific
  //  type of event. Set to true if you need it, false otherwise.
  self:CanHandlePowerEvent := false
  self:CanHandleSessionChangeEvent := false
  self:CanPauseAndContinue := true
  self:CanShutdown := true
  self:CanStop := true
 
  return
protected virtual method OnStart( args as string[] ) as void 
 
  super:OnStart( args )
 
  return
 
protected virtual method OnStop() as void
 
  super:OnStop()
 
  return
 
protected virtual method OnPause() as void
 
  super:OnPause()
 
  return
 
protected virtual method OnContinue() as void
 
  super:OnContinue()
 
  return
 
protected virtual method OnTimeOut( oSender as object, e as ElapsedEventArgs ) as void
 
 return

You can find a complete working sample as XIDE export file here: xsharpservice.zip