If someone has some time and the knowlege, can you please explain why the thread matters for #101? In DotNet itself it usually doesn't matter which thread is accessing a resource as long as no threads are doing that at the same time (Threadsafe), so I assume it's only an issue when calling native code from two different threads? But I can't even think of an issue with two different threads in c++ as long as they aren't doing it at the same time
You don't mean the example I wrote for a single threaded application that causes colors to get stuck, too? That's unrelated I think. As the Uninit works if you just wait after changing the color. But if you uninit from another thread it never works not even when waiting.