Каждый вызов BeginInvoke
запускает новый запрос в пул потоков .net.
Вполне допустимо звонить BeginInvoke
несколько раз. Каждый IAsyncResult
объект уникален для этого конкретного вызова BeginInvoke
.
Только будьте осторожны, чтобы убедиться, что вы делаете соответствующий вызов EndInvoke
для каждого BeginInvoke
вызова, который вы делаете, чтобы убедиться, что ресурсы очищены.
(Обратите внимание, что каждый вызов не обязательно равен потоку. BeginInvoke
передает запросы в пул потоков, который может поставить в очередь запросы, если все потоки в пуле уже используются)