Stay responsive and use threads
There are a few problems with our loading and scrolling code, all related to the fact that loading images and converting bitmaps is compute-intensive. Attempting to do this for 15 images all at once causes the app to appear frozen. You may have also noticed that the app takes significantly longer to start up since we added the thumbnail grid.
In conventional apps, it might be annoying but somewhat acceptable for the app to lock up while waiting for data to load. But in VR, the app needs to stay alive. The app needs to continue responding to the head movement and update the display for each frame with a view corresponding to the current view direction. If the app is locked while loading files, it will feel stuck, that is, stuck to your face! In a fully immersive experience, and on a desktop HMD that is strapped on, visual lockup is the most severe cause of nausea, or sim sickness.
The solution is a worker thread. The key to successful multithreaded support is...