Следующий код добавляет числа от 1 до 100 и возвращает сумму. То, что я пытаюсь сделать, это запустить вычисления в фоновом режиме и вернуть значение. Проблема в том, что returnValue возвращается до завершения DoWork. Как я могу ждать, пока мой фоновый работник завершит работу, прежде чем вернуть значение? (Кажется, я не могу поставить возврат в моем DoWork ...)
double returnValue = 0;
var b = new BackgroundWorker();
b.DoWork += new DoWorkEventHandler(
delegate(object sender, DoWorkEventArgs e) {
for(int i=0;i<100;i++){
returnValue += (i+1);
}
}
);
b.RunWorkerAsync();
return returnValue;
Приложение: Было бы лучше отправить насос сообщений в том же потоке, чем запускать его в фоновом режиме?
Кроме того, это просто пример кода, мой фактический код занимает больше минуты.