Вам нужно сделать это с более чем 5 итерациями. Нить даже не запускается до того, как ваш "один" материал завершен.
Кроме того, поскольку ваш «один» код никогда не спит, он может завершиться до того, как он позволит вашему маршалловому коду через Invoke
вообще работать. Invoke
/ BeginInvoke
заставляет код выполняться в потоке пользовательского интерфейса - это не может произойти, пока поток пользовательского интерфейса не будет выполнять никакой другой работы.
DoEvents
включит это. Но это не то, что вы должны обычно использовать для многопоточности. Это просто помогает для этой иллюстрации многопоточности.