Достаточно просто сделать фонового работника .. как такового:
private void button2_Click(object sender, EventArgs e)
{
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += (a, b) => GetApiData();
}
Но это не обязательно решает проблему делегата ...
Чтобы исключить определенный делегатизмените GetApiData () на:
public void GetApiData()
{
using (HttpClient httpClient = new HttpClient())
{
var response = httpClient.GetAsync("http://apiendpoint.com").Result;
textBox1.Invoke((Action)delegate
{
textBox1.Text = response.RequestMessage.ToString();
});
}
}
Затем вы можете удалить определение делегата.
Вы также можете пройти весь путь и сделать это:
private void button3_click(object sender, EventArgs e)
{
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += (a, b) =>
{
using (HttpClient httpClient = new HttpClient())
{
var response = httpClient.GetAsync("http://apiendpoint.com").Result;
textBox1.Invoke((Action)delegate
{
textBox1.Text = response.RequestMessage.ToString();
});
}
};
}
Устранение всех функций.Зависит от того, собираетесь ли вы повторно использовать данные GetAPI где-либо еще