Я пытаюсь постоянно обновлять sh содержимое моей сетки параллельным потоком. Это код, который не работает:
private void ContiniouslyRefreshPage(int interval)
{
var startTimeSpan = TimeSpan.Zero;
var periodTimeSpan = TimeSpan.FromSeconds(interval);
Dictionary<string, string> lastCheck = bluetoothService.CheckRequirements();
var timer = new System.Threading.Timer((e) =>
{
Dictionary<string, string> newCheck = bluetoothService.CheckRequirements();
if (!(lastCheck.Count == newCheck.Count && !bluetoothService.CheckRequirements().Except(lastCheck).Any()))
{
Application.Current.MainPage = new MasterDetail
{
Detail = new NavigationPage(new TestingPage())
{
BarBackgroundColor = Color.White,
BarTextColor = Color.Black
}
};
lastCheck = newCheck;
}
}, null, startTimeSpan, periodTimeSpan);
}
Предложение if работает, поэтому страница должна ссылаться на sh только при изменении моего набора данных (набор данных возвращается методом CheckRequirements)
Код не работает: он попадает в if-clause при изменении, но не инициализируется и не отображает новую страницу.
Я думаю, что это совсем не лучшая практика, я хотел бы получить совет, как это сделать лучше.