Чтобы заставить его работать.
В вашем классе
private SynchronizationContext synchronizationContext;
В потоке UI (основной поток)
synchronizationContext = System.Threading.SynchronizationContext.Current;
В рабочем потоке
synchronizationContext.Post(
state => DoUpdateInUIThread((Abc)state),
abc);