Just read the documentation for STAThreadAttribute
(emphasis mine):
Apply this attribute to the entry point method (the
Main()
method in C# and Visual Basic). It has no effect on other methods. To set the apartment state of threads you start in your code, use theThread.SetApartmentState
method before starting the thread.
So, in this case, the attribute should have no effect.