Как вы показываете анимированные GIF-файлы в форме Windows (С#)

У меня была такая же проблема. Вся c# форма (включая gif) перестает animated-gif перерисовываться из-за долгой animated-gif работы в фоновом режиме. Вот window-forms как я решил эту проблему.

  private void MyThreadRoutine()
  {
   this.Invoke(this.ShowProgressGifDelegate);
   //your long running process
   System.Threading.Thread.Sleep(5000);
   this.Invoke(this.HideProgressGifDelegate);
  }

  private void button1_Click(object sender, EventArgs e)
  {
   ThreadStart myThreadStart = new ThreadStart(MyThreadRoutine);
   Thread myThread = new Thread(myThreadStart);
   myThread.Start(); 
  }

Я c#-language просто создал другой поток, который c# будет отвечать за эту операцию. Благодаря windows-forms этой начальной форме перерисовка window-forms продолжается без проблем window-forms (в том числе моя гифка работает). ShowProgressGifDelegate window-forms и HideProgressGifDelegate c#-language - это делегаты в форме, которые window-form устанавливают для свойства winforms visible свойства pictureBox c#.net значение gif значение true windows-forms / false.

c#

winforms

animated-gif

2022-11-13T21:01:31+00:00