private void DoTempCheck(Func <bool> Breakout) // need to develop further for async
 {
     if (andor is AndorTempControlled)
     {
         AndorTempControlled camct = CameraAs <AndorTempControlled>();
         if (camct.TemperatureStatus != AndorTempControlled.Temp_Stabilized)
         {
             bool equil = (bool)Invoke(new Func <bool>(TemperatureStabilizedDialog));
             if (equil)
             {
                 if (camct.StabilizeUntil(Breakout))
                 {
                     return;
                 }
             }
         }
     }
 }
        private async Task UpdateTemperature()
        {
            AndorTempControlled camct = CameraAs <AndorTempControlled>();

            if (camct != null)
            {
                if (TemperatureCts != null)
                {
                    TemperatureCts.Cancel();
                }
                TemperatureCts = new CancellationTokenSource();

                if (numericTemp.Value > camct.Temperature)
                {
                    labelTemperature.Text = "Warming";
                }
                if (numericTemp.Value < camct.Temperature)
                {
                    labelTemperature.Text = "Cooling";
                }
                labelTemperature.BackColor = Color.Red;

                await camct.StabilizeTemperatureAsync((int)numericTemp.Value, TemperatureCts.Token); // Wait for 3 deg threshold

                LogTextBox.AppendText("ANDOR: Temp stabilizing...\r\n");
                labelTemperature.BackColor = Color.Gold;
                if (numericTemp.Value > camct.Temperature)
                {
                    labelTemperature.Text = "Warming";
                }
                if (numericTemp.Value < camct.Temperature)
                {
                    labelTemperature.Text = "Cooling";
                }

                await camct.StabilizeTemperatureAsync(TemperatureCts.Token); // Wait for driver signal

                LogTextBox.AppendText("Ready.\r\n");
                labelTemperature.BackColor = Color.RoyalBlue;
                UpdateTemperatureLabel();
                TemperatureCts = null;
            }
        }