public DataProvider() { _computer = new Computer (); // enable everything except for GPU which we can't monitor in a service anyway (keyword: session 0 isolation) _computer.CPUEnabled = _computer.FanControllerEnabled = _computer.HDDEnabled = _computer.RAMEnabled = _computer.MainboardEnabled = true; _computer.Open (); _wmiProvider = new WmiProvider (_computer); _wmiProvider.Update (); _visitor = new UpdateVisitor (); // tick once per second _timer = new Timer (1000.0); _timer.Elapsed += updateTick; _timer.AutoReset = true; _timer.Enabled = true; }