Уверен, что ответ прост, но все же. Есть код:
private void metroButton1_Click(object sender, EventArgs e)
{
pictureBox_loader.Show();
login.Text = (Authorization.Auth()) ? "Успех" : "Провал";
pictureBox_loader.Hide();
}
Суть в том, что картинка (это гифка) подвисает во время выполнения авторизации, оно в целом логично, т.к. поток занят. Как мне запустить гифку в другом потоке, чтобы она анимировалась пока выполняется код авторизации?
Запуск авторизации в отдельном потоке (гифка все равно виснет):
private void authThread()
{
this.login.BeginInvoke((MethodInvoker)(() => {
login.Text = (Authorization.Auth()) ? "Успех" : "Провал";
pictureBox_loader.Hide();
}));
}
private void metroButton1_Click(object sender, EventArgs e)
{
pictureBox_loader.Show();
new Thread(new ThreadStart(authThread)).Start();
}
Нет смысла в отдельном потоке просто запускать задачу на UI поток. Попробуйте для начала выполнить аутентификацию, потом запускать задачу.
private void authThread()
{
var auth = Authorization.Auth(); // это в отдельном потоке
this.login.BeginInvoke((MethodInvoker)(() => {
login.Text = auth ? "Успех" : "Провал"; // это уже в UI
pictureBox_loader.Hide();
}));
}
private void metroButton1_Click(object sender, EventArgs e)
{
pictureBox_loader.Show();
new Thread(new ThreadStart(authThread)).Start();
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Проблема следующая, использую phantomjs для выполнение рутинных задач для сайта https://teasernetcom/, код написан на c#
ЗдравствуйтеЕсть простой видеоредактор, сохранение видео в файл реализовано в фоновом режиме, реализация по документации https://docs