Поскольку вы новичок в C #, я удивлен, что никто больше этого не понял, но здесь все идет.
Вместо бесконечного запуска Task
и ожидания переключения.переключите, используйте событие Toggled
для запуска при изменении состояния переключателя.Как это работает?Когда вы переключаете переключатель, ваша программа автоматически вызывает этот метод.Например:
public MyConstructor()
{
S1.Toggled += S1_Toggled;
}
void S1_Toggled(object sender, ToggledEventArgs e)
{
System.Diagnostics.Debug.WriteLine(String.Format("Switch is now {0}", e.Value));
}
Более подробную информацию (и некоторые примеры) для Коммутатора можно найти в документах Xamarin Forms .
As Jason указал, что вы должны изменять свойства пользовательского интерфейса из потока пользовательского интерфейса.Такие свойства, как цвет, видимость, текст и т. Д. (Все, что изменяется на дисплее) должны быть выполнены в Device.BeginInvokeOnMainThread
следующим образом:
Device.BeginInvokeOnMainThread(() =>
{
StatLbl.Text = "Offline";
});