Я не очень знаком с классом SqlDependency
, но согласно документации MSDN:
Событие OnChange может быть сгенерировано в потоке, отличном от потока, который инициировал выполнение команды.*
Это, кажется, открывает возможность того, что два обработчика событий могут работать одновременно.Нет документации, в которой говорится, что все обработчики событий, вызванные при возникновении события, должны завершиться, прежде чем событие может быть вызвано снова.Надежнее всего предположить, что может произойти несколько одновременных вызовов события.Поскольку событие возникает в неопределенном потоке, вам все равно придется защищаться от проблем параллелизма.