J'ai un appel à une méthode qui renvoie un UIElement
que j'appelle en utilisant le Dispatcher
, ci-dessous est le code.WPF Dispatcher Invoke la valeur de retour est toujours null
Cependant, la valeur de retour de l'appel Dispatcher
est toujours NULL, des idées?
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;
}
Cela fonctionnera, mais il me semble plus propre d'utiliser Func comme décrit dans les autres réponses. –
Bien en fait Dispatcher.Invoke attend que le thread se termine, Dispatcher.BeginInvoke ne ... – Zenuka