Why are WinForms applications STAThread by default?
When you create an empty WinForms application with Visual Studio, the template has the STAThread attribute in the main application class. I have been reading some docs about it, but I'm not sure if I understood it at all. Really I have some questions about it: Why is this attribute added? What does it mean? What happens if you remove this attribute? TomTom 1. Why is this attribute added? Because it is required by the ActiveX object model. And you can drop ActiveX controls on a WinForm (so it is there for compatibility) OR some .NET classes use native controls which require that attribute. 2.