Я делаю видеоигру, и у меня есть основной поток, который заботится о графике, и отдельный рабочий поток, который заботится о сети (синхронные сокеты UDP).
Проблема в том, что когдаЯ закрываю игру, я получаю ошибку «Нарушение прав доступа», и отладчик указывает мне на одну из нескольких строк кода, каждая из которых ссылается на объект, который, как я считаю, уже уничтожен в другом потоке..
Поскольку я использую асинхронные потоки, мой инстинкт состоит в том, что основной поток почти всегда сначала убивается, когда вызывается вызов recv (), а затем, когда возвращается recv (), все указатели, которые он теперь держит,фальшивая и visual studio начинает выдавать ошибки.
Кстати, я использую потоки Boost, Visual Studio 2008 и C ++