Почему Invoke не идёт в комплект textbox и что можно придумать?
P.S. Команда выполняется из асинхронного потока.
chatboxedit.Invoke((Action)(() => { chatboxedit.text = message; }));
В WPF перебросом в UI-поток занимаются не контролы, а Dispatcher.
В простейшем случае можно сделать так:
Application.Current.Dispatcher.InvokeAsync(() => { chatboxedit.text = message; });
С другой стороны, если вы пользуетесь WPF, то имеет смысл воспользоваться стандартным паттерном MVVM, и тогда
Сборка персонального компьютера от Artline: умный выбор для современных пользователей