Привет, Я разрабатываю некоторые приложения в С#. На данный момент я занимаюсь резьбой, и у меня есть вопрос, который у меня на уме. В чем разница между Invoke и BeginInvoke? Я прочитал несколько статей, и я нашел здесь полезную информацию: здесь
Какая разница между Invoke и BeginInvoke в следующем коде:
private void ProcessRoutine()
{
for (int nValue = StartFrom; nValue <= EndTo; nValue++)
{
this.Invoke(this.MyDelegate, nValue);
//this.BeginInvoke(this.MyDelegate, nValue);
}
MessageBox.Show("Counting complete!");
}
private void MessageHandler(int progress)
{
lblStatus.Text = lblStatus.Text = "Processing item: " + progress.ToString();
progressBar1.Value = progress;
}
где MyDelegate является ссылкой на функцию MessageHandler.
Я заметил, что использование BeginInvoke lblStatus.Text не обновляется, когда использование Invoke обновляет метку. Кроме того, я знаю, что Invoke ждет завершения его выполнения. Самый важный случай, который меня интересует, - это то, почему в этом случае есть разница в освещении текста ярлыка.