добрый вечер коллеги,
у меня есть класс, который должен все свои события вызывать в определенном потоке N. Как вам идея использовать для смены потока await и кастомный SynchronizationContext, который будет пулять continuation в очередь, которая обрабатывается в потоке N.
События изначально будут триггериться из сети например так:
_webSocket.OnMessage += async (sender, args) =>
{
await SwitchToNThreadAsync();
MessageReceived?.Invoke();
};