new Action(async () => { var r = await GetStuffAsync("Key1"); updateUI(r)
}).Invoke();
new Action(async () => { var r = await GetStuffAsync("Key2"); updateUI(r)
}).Invoke();
new Action(async () => { var r = await GetStuffAsync("Key3"); updateUI(r)
}).Invoke();*GK* On 20 April 2016 at 17:55, Thomas Koster <[email protected]> wrote: > On 20 April 2016 at 17:34, Greg Keogh <[email protected]> wrote: > > Folks, I want to make the parallel calls to a web service that can take > 2 to > > 5 seconds. It's like this now: > > > > Task t1 = GetStuffAsync("Key1"); > > Task t2 = GetStuffAsync("Key2"); > > Task t2 = GetStuffAsync("Key3"); > > await t1; await t2; await t3; > > UpdateUI(t1.Result); > > UpdateUI(t2.Result); > > UpdateUI(t3.Result); > > > > This runs the GetStuffs in parallel, but the UI doesn't update until all > 3 > > finish. What's the best way of rejigging this so that each get-and-update > > runs in parallel? > > On 20 April 2016 at 17:53, Thomas Koster <[email protected]> wrote: > > Coding off-hand, is this what you had in mind? > > > > async Task GetStuffAndUpdateUI(string key) > > { > > var r = await GetStuffAsync(key); > > UpdateUI(r); > > } > > > > GetStuffAndUpdateUI("Key1"); > > GetStuffAndUpdateUI("Key2"); > > GetStuffAndUpdateUI("Key3"); > > Sorry, GetStuffAndUpdateUI should have been called > GetStuffAndUpdateUIAsync. > > -- > Thomas Koster >
