Я использую пакет nuget под названием LifxNet от dotMorten.Я могу изменить цвет лампы и включить и выключить ее.Теперь я хочу иметь кнопку, которая переключает мощность лампы.Я пытаюсь использовать метод GetLightStateAsync (), чтобы проверить, включен ли индикатор.
private void btnPower_Click(object sender, RoutedEventArgs e)
{
var powerState = client.GetLightStateAsync(selectedLight).Result.IsOn;
if (powerState == false)
{
client.SetDevicePowerStateAsync(selectedLight, true);
}
if (powerState == true)
{
client.SetDevicePowerStateAsync(selectedLight, false);
}
}
Когда я запускаю этот код, все приложение зависает.Когда я делаю паузу в коде, он говорит мне, что строка кода тоже работает:
var powerState = client.GetLightStateAsync(selectedLight).Result.IsOn;
Я пытался запустить его по-разному и понял, что он зависает, когда вы добавляете .Resultкод.Если вы удалите .Result.IsOn и закомментируете операторы if, тогда программа будет работать нормально.Я не могу понять, что не так, и я был бы признателен за помощь.