Вот как я это сделаю в сервисе (я склонен следовать довольно похожему шаблону при написании сервисов, однако я не был уверен в вашей временной задержке - вы хотели 10 секунд между созданием файла или начинать создавать файл каждый раз? 10с? Это тонкая разница, но представьте, что произойдет, если создание файла займет, скажем, 30с ...)
Private Shared ReadOnly SleepTime As New TimeSpan(0, 0, 10)
Private _stopService As Boolean
Private _thread As Thread
Public Sub OnStart()
_stopService = False
_thread = New Thread(AddressOf DoWork)
_thread.Name = "File Creation Thread"
_thread.Start()
End Sub
Public Sub OnStop()
_stopService = True
_thread.Join()
End Sub
Private Sub DoWork()
While Not _stopService
GetInfo()
GetUsers()
GetProcess()
GetServices()
GetCPU()
GetMem()
WriteXML()
Thread.Sleep(SleepTime)
End While
End Sub