Предполагая, что вы делаете что-нибудь , которое пересекает домен приложения (WCF, Remoting), вы не должны передавать делегат в качестве обратного вызова, он просто не будет работать.
Вместо этого вы должны определить контракты, которые клиент реализует и передает службе (WCF имеет контракты обратного вызова ), а затем служба вызывает обратный вызов.
При вызове клиентская реализация обратного вызова будет запущена. В реализации клиент вносит изменения в пользовательский интерфейс. Обратите внимание, что большинство обратных вызовов, которые поступают через вызовы внутри домена приложения, не находятся в потоке, который вызывал их по умолчанию; Обязательно внесите изменения в пользовательский интерфейс, перенаправив вызов в поток пользовательского интерфейса.