Я обновляю устаревший код, написанный на VB6, и столкнулся с необходимостью мьютекса. У меня есть два сокета, и мне нужно отправлять и получать из разных источников. Поэтому я планирую, чтобы один сокет непрерывно прослушивал входящие соединения, а другой - для отправки или получения.
Таймер проверяет двадцать раз в секунду, установилось ли соединение, и, если это так, использует второй сокет для его принятия, а затем сразу же начинает прослушивание. Если второе соединение приходит до того, как первое завершило получение данных, ему нужно подождать (в C # я бы наложил на него блокировку и вызвал бы его выполненным).
Кроме того, если программе необходимо отправить данные, я буду использовать второй сокет и подключусь к удаленному хосту. Поэтому, если вторые сокеты уже получают данные, их также необходимо заблокировать.
Я не знаком с многопоточностью в VB6 - это проблема, или событие Tick
таймера всегда возникает в том же потоке, что и все остальное?