Я попытался реализовать шаблон производителя/потребителя в С#. У меня есть потребительский поток, который контролирует общую очередь и поток производителя, который помещает элементы в общую очередь. Нить производителя подписана на получение данных... то есть у него есть обработчик событий и он просто сидит и ждет, когда событие OnData будет запущено (данные отправляются с стороннего api). Когда он получает данные, он помещает его в очередь, чтобы потребитель мог справиться с этим.
Когда событие OnData срабатывает у продюсера, я ожидал, что он будет обработан моим потоком производителя. Но, похоже, это не то, что происходит. Событие OnData выглядит так, как будто оно обрабатывается вместо нового потока! Это как .net всегда работает... события обрабатываются в собственном потоке? Могу ли я контролировать, какой поток будет обрабатывать события, когда они будут подняты? Что, если сотни событий поднимаются почти одновременно... каждый будет иметь свой собственный поток?