У меня есть вызов метода, который возвращает UIElement
, который я вызываю, используя Dispatcher
, ниже приведен код.WPF Dispatcher Invoke возвращаемое значение всегда null
Однако возвращаемое значение Dispatcher
invoke всегда равно NULL, любые идеи?
void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
var slides = (IList<UIElement>)e.Argument;
var bmpSlides = new List<UIElement>();
var imageService = new ImageService();
int count = 0;
foreach (UIElement slide in slides)
{
object retVal = slide.Dispatcher.Invoke(
new ThreadStart(() => imageService.GenerateProxyImage(slide)));
bmpSlides.Add(imageService.GenerateProxyImage(slide));
_backgroundWorker.ReportProgress(count/100 * slides.Count);
count++;
}
e.Result = bmpSlides;
}
Это будет работать, но мне кажется более чистым использовать Func, как описано в других ответах. –
Ну на самом деле Dispatcher.Invoke ждет завершения потока, Dispatcher.BeginInvoke не ... – Zenuka