private void DoWork()

in Hands-on lab/lab-files/starter-project/SmartMeterSimulator/MainForm.cs [170:201]


        private void DoWork(Sensor sensor)
        {            
            switch (sensor.State)
            {
                case DeviceState.Connected:
                    //add some delay
                    Thread.Sleep(delay / 2);

                    //Set device to transmit
                    sensor.State = DeviceState.Transmit;

                    //Send sensor data to Iot Hubs
                    sensor.SendMessageAsync();
                    break;
                case DeviceState.Transmit:
                    //add some delay
                    Thread.Sleep(delay / 2);

                    //set device to ready
                    sensor.State = DeviceState.Connected;
                    break;
            }

            //Check for any cloud-to-device messages sent through IoT Hub:
            if (sensor.State == DeviceState.Connected || sensor.State == DeviceState.Transmit)
            {
                sensor.ReceiveMessageAsync();
            }

            //Update the Device              
            WorkComplete(sensor);           
        }