Simple Locking Approach
using namespace System::Threading;
Create a flag
private: bool ClassObjectsLocked;
In your constructor set it up
ClassObjectsLocked = false;
Then in functions which want to alter values but may be on a different thread
while (ClassObjectsLocked)
Thread::Sleep(1);
In functions which want to read values
ClassObjectsLocked = true;
...
ClassObjectsLocked = false;
Feel free to comment if you can add help to this page or point out issues and solutions you have found. I do not provide support on this site, if you need help with a problem head over to stack overflow.