Remoting не может этого сделать, жестким требованием для потока STA является то, что он также прокачивает цикл сообщений.Вы действительно должны будете создать свой собственный поток, используйте Thread.SetApartmentState (), чтобы переключить его на STA до того, как запустит его.И используйте Application.Run () с фиктивной формой, чтобы запустить цикл обработки сообщений.Затем вы можете использовать Control.BeginInvoke () для перенаправления вызова из потока удаленного взаимодействия в этот новый поток.
Обратите внимание, что, поскольку вы уже запустили поток STA для сервера, этот поток прекрасно справился бы с этой задачей.Вставьте это в свой класс формы, чтобы оно не стало видимым:
protected override void SetVisibleCore(bool value) {
if (!this.IsHandleCreated) {
this.CreateHandle();
value = false;
}
base.SetVisibleCore(value);
}