Я нахожу код check-and-invoke, который должен быть усеян во всех методах, связанных с формами, слишком многословным и ненужным. Вот простой метод расширения, который позволяет полностью устранить его:
public static class Extensions
{
public static void Invoke<TControlType>(this TControlType control, Action<TControlType> del)
where TControlType : Control
{
if (control.InvokeRequired)
control.Invoke(new Action(() => del(control)));
else
del(control);
}
}
И тогда вы можете просто сделать это:
textbox1.Invoke(t => t.Text = "A");
Больше не возиться - просто.