Похоже, вы пытаетесь использовать BackgroundWorker для выполнения этой операции, и в отсутствие какой-либо более подробной информации о том, что не работает, я предполагаю, что это потому, что вы не назначаете какой-либо результат или ошибки который может быть подхвачен главным потоком.
В случае успеха вам следует присвоить результаты запроса:
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
e.Result = reader.ReadToEnd();
}
Поскольку вы, похоже, делаете несколько запросов, вам, вероятно, следует сделать результат List<string>
или аналогичным.
Вы должны удалить блок try / catch и устранить любые ошибки в событии RunWorkerCompleted BackgroundWorker:
private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if(e.Error != null)
{
MessageBox.Show("Error in async operation: " + ex.Message);
}
else
{
//process results
}
}