кнопка авторизации, при нажатии проверяется tryCount если = 0 то кнопка блокируется на 5 секунд, но возникает ошибка
Ошибка : "Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток."
{
if (txtLogin.Text != null && txtPass.Text != null)
{
Aufthoriz();
if(tryCount == 5)
{
btnAufth.IsEnabled = false;
timer = new Timer(5000);
timer.Elapsed += new ElapsedEventHandler(OnTimerEvent);
timer.Enabled = true;
timer.Start();
}
}
}
public void OnTimerEvent(object sender, ElapsedEventArgs e)
{
timer.Stop();
timer.Close();
tryCount = 0;
btnAufth.IsEnabled = true; //ОШИБКА!!!
}
private void Aufthoriz()
{
string login = txtLogin.Text;
string password = txtPass.Text;
Position position = context.Position.FirstOrDefault(
p => p.Login == login && p.Password == password);
if (position != null)
{
//переход на след. страницу
}
else
{
tryCount++;
MessageBox.Show("Неверный логин или пароль", "Ошибка входа!");
}
}```
Ответы (1 шт):
Автор решения: MRXIT
→ Ссылка
Таймер синхронизируете с главным потоком. https://docs.microsoft.com/ru-ru/dotnet/api/system.timers.timer.synchronizingobject?view=netcore-3.1
В случаи, если и это не поможет, хоть и должно, воспользуйтесь SynchronizationContext https://docs.microsoft.com/ru-ru/dotnet/api/system.threading.synchronizationcontext?view=netcore-3.1