【发布时间】:2018-11-30 17:05:34
【问题描述】:
所以我是使用 Xamarin 编程的新手(实际上甚至使用 C# tbh)
我想要实现的是一个仅在切换开关(称为 S1)时才应该工作的任务。
我的想法:
public async Task GetCon(){
for (; ; )
{
if (S1.IsToggled == true)
{
AI1.IsRunning = true;
bool CStat = await CrossConnectivity.Current.IsRemoteReachable("https://www.google.ch");
if (CStat == true)
{
StatLbl.Text = "Online";
}
else if (CStat == false)
{
StatLbl.Text = "Offline";
break;
}
off:;
await Task.Delay(3000);
}
一切正常,但如果我重新关闭 Switch 并使 google 无法访问,StatLbl 文本不会更改为离线。 有什么想法吗?
【问题讨论】:
-
您正在更改 UI,并且所有 UI 更改都必须在 Main/UIThread 上完成,而您的异步任务可能并非如此。如果您将两个文本更改都包含在
Device.BeginInvokeOnMainThread( ()=>StatLbl.Text = "Online");中,它可能会开始工作。
标签: c# for-loop xamarin xamarin.forms