Use async await within an offloaded worker task.
/// <summary>
/// Use async await within an offloaded worker task
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
/// <remarks>Source https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/consuming-the-task-based-asynchronous-pattern#taskrun</remarks>
public async void button1_Click(object sender, EventArgs e)
{
pictureBox1.Image = await Task.Run(async() =>
{
using(Bitmap bmp1 = await DownloadFirstImageAsync())
using(Bitmap bmp2 = await DownloadSecondImageAsync())
return Mashup(bmp1, bmp2);
});
}