Удаление подписки - ожидает завершения действия подписки?

var sub = observable.Subscribe(data => my_action(data));

Когда я избавляюсь sub Переменная будет отписываться. Хорошо, но при этом будет ждать my_action закончить, если он уже был вызван?

Обновление 1: я прошу сознательного решения, а не побочных эффектов. Сравните это с Threading.Timer - чтобы дождаться действия, вы должны вызвать специальный Dispose метод.

Обновление 2: я прошу дождаться окончания действия, а не отменять действие.

2 ответа

Решение

Это зависит. Если действие и удаление происходят в одном потоке, удаление будет происходить после завершения действия. Если действие выполняется в другом потоке для удаления, то они происходят независимо, и возможно, что удаление происходит во время выполнения действия.

Если ваш вопрос, будет ли удаление подписки отменять действие, инициированное предварительным наблюдением, ответ будет отрицательным.

РЕДАКТИРОВАТЬ:

Чтобы ответить на ваш уточненный вопрос, краткий ответ - нет. Утилизация назначена немедленно. В зависимости от ситуации с вашим потоком / планировщиком, он либо будет выполнен немедленно, либо будет выполнен при наличии доступного потока.

Другие вопросы по тегам