I am pretty sure I saw somewhere in the documentation a list of features that we shouldn't use in background threads. Now I can't find it.
I have a multi-threaded C++ app that calls PB code using PBNI. For some reason if it is processing more than one thread at a time, the ExportJSON datastore method causes the program to abort. If it is only processing one thread, it works as expected.