У меня есть аппаратное обеспечение, которое подключено через сокет,
теперь мне нужно проверить, что аппаратное обеспечение подключено или нет, каждые 5 секунд, которое отображается с помощью флажка
i реализовала функцию:
private static System.Timers.Timer aTimer;
public MainWindow()
{
InitializeComponent();
client.BeginConnect(remoteEP, new AsyncCallback(ConnectCallback), client);
aTimer = new System.Timers.Timer();
aTimer.AutoReset = true;
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = 2000;
aTimer.Enabled = true;
}
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
if (client.Connected == true)
{
Console.WriteLine("Not Connected");
CheckBox.IsChecked = false;
}
else
{
Console.WriteLine("Connected");
CheckBox.IsChecked = false;
}
}
Но когда я запускаю приложение, он бросает ошибку.
Вызывающий поток не может получить доступ к этому объекту, потому что ему принадлежит другой поток.
Я исследовал и узнал о Dispatcher.Invoke, но не смог реализовать это в своем коде.