1. Может ли работа параллельно другого потока вызвать такую смену адреса? (Одсюда бы следовало, что при использовании мультипоточности нельзя вызывать внешние Native DLL с передачей параметра ByRef... )
2. Если ByRef безопасна, то безопасны ли такие варианты, как:
- Код: Выделить всё
x=varptr(a)
f(x)' внешняя ф-ция
или это уже две разных команды, а между ними менеджер может сработать?
или так:
- Код: Выделить всё
x=varptr(a)
.... математика без создания\удаления и вообще обращений к объектам, так же без DoEvents, например x=x+4
f(x)' внешняя ф-ция
3. Какие вообще возможны грабли при использовании одной внешней ф-ции в разных потоках одновременно? Естественно этим ф-циям я не буду передавать пересекающиеся области памяти, а как обстоит дело, например, с локальными переменными вызванной ф-ции? Может нужно объявлять для этого ф-цию для каждого потока отдельно, или принимать еще какие-либо меры?