Объявил делегат:
public delegate void SampleDelegate(string msg);
вызываемый метод в классе формы:
...
var sampleNotify = new SampleDelegate(NotifyMe);
//передаю делегат
...
public void NotifyMe(string displayedString)
{
Logger.Info("Зашли в NotifyMe с " + displayedString + "%");
textBox1.Text = displayedString;
//Application.DoEvents(); - пробовал вызывать
}
по логам показывает что в NotifyMe
приходит нужная строка, но в textBox1
ничего не появляется. NetFramework 4.0
Убедитесь, что ваш делегат выполняется синхронно в UI-потоке вашей формы. В противном случае (асинхронном), доступ к контролу должен осуществляться через контекст синхронизации:
public void NotifyMe(string displayedString)
{
Logger.Info("Зашли в NotifyMe с " + displayedString + "%");
Invoke(new MethodInvoker(() =>
{
textBox1.Text = displayedString;
}));
}
Как сделать замену(и добавление) частей страницы с помощью razor?
С появлением async await все стало красивоВозьмем, например, такой кусочек кода