You are specifying a maximum stack size of 4 bytes.
Dim ThreadA As New Thread(AddressOf MyBackgroundThreadA, maxStackSize:=4)
That is enough to hold one 32 bit integer, but not enough for a return address in a 64 bit system. So almost certainly, as soon as the Thread starts and calls the "run" method, it will exceed the available stack and your app will crash:
Thread Constructor (System.Threading) | Microsoft Docs[
^]
Give it the default (1MB) size or at least a reasonable 1024 bytes (if your code doesn't do or store much, or use biggish local variables.)