Task <HttpResponseMessage> MakeSafeHttpRequestAsync(Func <Task <HttpResponseMessage> > http_request) { Func <Task <HttpResponseMessage> > func = new Func <Task <HttpResponseMessage> >(async() => { HttpResponseMessage task_res = null; try { HttpResponseMessage res = await http_request(); task_res = res; _ = Dispatcher.UIThread.InvokeAsync(() => { // ServerConnectionInfo = "Server: Connected"; _uiser.GraphicalReactionToServerCondition("Connected"); } ); } catch (Exception) { _ = Dispatcher.UIThread.InvokeAsync(() => { // ServerConnectionInfo = "Server: Disconnected"; _uiser.GraphicalReactionToServerCondition("Disconnected"); _uiser.IsVisibleProgressBar(false); }); } return(task_res); }); Task <HttpResponseMessage> http_request_task = func(); return(http_request_task); }