Dispatcher
을 사용하여 호출하는 UIElement
을 반환하는 메서드에 대한 호출이 있습니다. 코드는 아래와 같습니다.WPF Dispatcher Invoke 반환 값은 항상 null입니다.
그러나 Dispatcher
호출의 반환 값은 항상 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.BeginInvoke는 스레드가 완료 될 때까지 기다립니다. Dispatcher.BeginInvoke는 ... – Zenuka