Loop boundaries allow for thread switches to occur (they do not guarantee one will occur - they just could occur).
So if you have other threads going they could run and you may not get a huge CPU penalty.
But put a loop like
while true
wend
in the app open event before any other threads start up and you will get a CPU burner
Tight loops in the main thread very effectively freeze the UI. To me, that is unacceptable. And since App.DoEvents is evil in Xojo, better use a timer. It will use next to zero CPU, and is much better in tune with event programming.
I already told you way way way back when whats going on
IF you had a LOOP like that and NO THREADS it would just burn CPU
But because you DO have threads they may get switched to - perhaps a lot - and they’ll proceed
Stick a few debug logs in
One IN the body of the loop and then some in whatever code your threads execute
I understand all that and agree with you both. My point here is not in reference to best practices, or how it SHOULD work, just a comment about how this unexpected scenario has shown itself while tracking a different issue.
Sort of like how I discovered yesterday that I can run a Proto2000 EMD E6A on a 15" radius curve. I;d never do that in a real operational session (and it looks ridiculous), but it is interesting that a locomotive that long would not derail on a tight curve like that.
They do - to a point, but they still are tight since they are 3 axle trucks and luckily the center axle has a bit of side to side play. Looks silly with the body hanging over the inside of the curve. Definitely not “to scale”