Core? Do you mean thread? The processor or core that this is happening on has nothing to do with it. It's the fact that each thread is using the same memory-based structures all at the same time and assuming that each one is the only one accessing that data.
Assume all objects are held in a double-linked list. One thread comes along and starts to delete an object - First it frees the memory, then it relinks the list to remove the deleted object. During that, another thread is accessing that list and accesses the memory you've just deleted ...
Two threads are allocating memory from a routine that assumes no threading is involved ... both threads may get the address of the same memory location. Or they may update the heap structures in such a way as to corrupt those structures.
Basically, just don't do it.
There is no safe way, with DBPro's current structure, to do it without hitting problems in DBPro BASIC code.
If all you want is parallel loading, then there's a plug-in on my site that does this, correctly and safely (eventually - I didn't even manage to get something that simple right the first time).
If you want parallel reading & writing then there's currently nothing available, but I'll think about adding it to the same plug-in.