У меня была та же проблема, и я сталкивался с различными решениями, применяя которые я сталкивался с несколькими разными проблемами. Наконец, ниже я собрал несколько фрагментов из разных постов, которые сработали для меня, как и ожидалось.
private void btnCompare_Click(object sender, EventArgs e)
{
ThreadStart threadStart = new ThreadStart(Execution);
Thread thread = new Thread(threadStart);
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
Вот метод Execution, который также вызывает вызов элемента управления PictureBox:
private void Execution()
{
btnCompare.Invoke((MethodInvoker)delegate { pictureBox1.Visible = true; });
Application.DoEvents();
// Your main code comes here . . .
btnCompare.Invoke((MethodInvoker)delegate { pictureBox1.Visible = false; });
}
Имейте в виду, что PictureBox невидим из окна свойств или выполните ниже:
private void ComparerForm_Load(object sender, EventArgs e)
{
pictureBox1.Visible = false;
}