Question: I want to be able to launch multiple browser windows and get the html from them and interact with them like I can with the .net web browser control. The problem is the c# web browser control requires STA threading and that makes my program slower and error prone. Is their a way I can talk to the real IE browser or even Chrome, Firefox etc and do this?

I know there is paid third party solutions and stuff but I was wondering if anybody knew of any free libraries that are reliable and work. I can't use HttpWebRequest for what I am doing, so don't suggest that please.

I will be running on Windows and using C#.

Answer: 
[Awesomeium](http://awesomium.codeplex.com/) is a Webkit/Chromium (Chrome) based browser you can talk to via a .NET wrapper, much like the WebBrowser control. I'm not sure on the STA threading requirement though.

As for STA Threading making your application "slower and error prone" -- This sounds odd, perhaps you should investigate solving this.
Or another webbrowser control: <http://code.google.com/p/geckofx/>

[Embeding Firefox Brower In C# Using GeckoFX](http://winform-net.blogspot.com.au/2011/05/embeding-firefox-brower-gecko-engine-in.html)