Извините, я очень новичок во всем этом многопоточности ...
Я работаю над клиент-серверным приложением и собираюсь использовать System.Net.Sockets.NetworkStream
методы Async IO.
Я знаю, что после вызова BeginRead
система начнет вызывать мой обратный вызов каждый раз, когда получает данные. Обратный вызов может занять значительное время, но его необходимо завершить, прежде чем другие потоки запустят этот же обратный вызов.
Если я просто отмечу свой метод обратного вызова как синхронизированный, этого должно быть достаточно, чтобы гарантировать, что каждый поток обратного вызова будет выполняться до завершения в порядке, в котором система получила свои данные?
Если нет, какой инструмент синхронизации будет лучшим? (например, Monitor
с, WaitHandle
с, Semaphore
с? и т. д.)
Редактировать: это в VB 2008 на Win Server 2008