Is there a safer/ more readable way of using this code?
Well, at first glance, i think it should be:


Constructor shouldn't have any logic other than initialization. Any I/O, Threads .... operations would be better to start in custom method. So, in your case i will write:

public TemperaturePresenter(){
    _view = new MainView();
}
delegate in your example very large, my opinion - it should be extracted as a new method
Webrequest in Presenter? It depends, but I think it no so good. May be it would be better if you extract web-request logic as external dependency like ITemperatureProvider. Because now, it pull dependency on webserver file and file working into the presenter - it has some smell.


At first glance that's all.