Статическая библиотека ускоренного потока не может использоваться с кодом C ++ / CLI, поскольку она использует обратные вызовы локального хранилища потока для очистки данных, специфичных для потока. Можно отключить эти обратные вызовы, исключив tss_pe.obj при сборке библиотек boost, что позволяет использовать библиотеку в управляемом коде, но означает, что эти ресурсы необходимо очищать вручную.
Ничего из этого официально не задокументировано, но я собрал воедино из разных ошибок / сообщений на форуме (например, https://svn.boost.org/trac/boost/ticket/1848) что эта ручная очистка требует:
Как новый пользователь библиотеки, который раньше не работал с локальным хранилищем потоков, я хочу быть уверенным, что полностью понимаю эти краткие рекомендации. Я буду использовать поток поддержки из неуправляемого кода в COM DLL, которая также содержит пару управляемых классов.
Может ли кто-нибудь предоставить более подробное объяснение, с примерами, точных обстоятельств, при которых мне нужно вызывать вышеуказанные функции, чтобы избежать утечки ресурсов, когда автоматическая очистка отключена?
Задача ещё не решена.
Других решений пока нет …