Como gerar retorno dentro de métodos anônimos?

Basicamente, eu tenho um método anônimo que eu uso para o meuBackgroundWorker:

worker.DoWork += ( sender, e ) =>
{
    foreach ( var effect in GlobalGraph.Effects )
    {
        // Returns EffectResult
        yield return image.Apply (effect);
    }
};

Quando faço isso, o compilador diz:

"A declaração de rendimento não pode ser usada dentro de um método anônimo ou expressão lambda"

Nesse caso, qual é a maneira mais elegante de fazer isso? Entre este método DoWork está dentro de um método estático, caso seja importante para a soluçã

questionAnswers(7)

yourAnswerToTheQuestion