Doing

fThread = std::thread( &amp;FileHandler::writeFile, this, pData );
fThread.join();


Is no different than doing

writeFile(pData);


This is because join() is going to block execution of the current thread and wait until the newly created thread returns before allowing the current thread to continue.

You can call detach() which will allow the thread to continue and the data will be written.

As far as what is the best way to write the data of the vector it depends on what size is it going to be and what behavior do you want.  You could make a copy if the vector is not that large and then write the copy to the file.  If the vector is going to be large then I would suggest either a std::lock_guard() or use an std::atomic type.  

As always you should profile to see which way is actually faster for you.

which is the best way to access a shared object in a multithreading application?
I'm looking for the "Rannoch: Admiral Koris" mission. Who or what do I need to interact with to receive this mission? I know it's possible to permanently miss certain missions by not accessing them before completing other missions. Is this the case with "Rannoch: Admiral Koris", or am I just not wandering around in the right places?
