Variable capturada en un bucle en C #

Encontré un problema interesante sobre C #. Tengo un código como el de abajo. List<Func<int>> actions = new List<Func<int>>(); int variable = 0; while (variable < 5) { actions.Add(() => variable * 2); ++ variable; } foreach (var act in actions) {...