I know we can get excited using Lamdba Expressions but they should not replace logical thinking. While we talk about logical thinking lets examine multi threading here.
Example.
From the UI thread we create a secondary thread. Jump back to the UI thread. Then back to the secondary thread. What logic? There is no need for the variable to be global also.
Does it matter? Well it very much could effect performance in rare cases. The marshaling call is pretty heavy when invoke is called from the private method in the controls class.
Back to my comment
I know we can get excited using Lamdba Expressions. You are marshalling Two calls One after the other. Surely you can see the logic if we know we need to update multiple controls it makes sense to marshal them both together?
Finally remember Invoke is synchronous. The secondary thread will pause until it has finished invoking. BeginInvoke would be more appropriate here since it is asynchronous so the secondary thread will resume.