private void LoadSaleOrders() { statistics.Add(new Statistic { ThreadId = Thread.CurrentThread.ManagedThreadId, Message = "LoadSaleOrders():Start" }); SaleOrderProxyService.SaleOrderServiceClient client = new SaleOrderProxyService.SaleOrderServiceClient(); IList <SaleOrderProxyService.SaleOrder> products = client.GetSaleOrders(); statistics.Add(new Statistic { ThreadId = Thread.CurrentThread.ManagedThreadId, Message = "LoadSaleOrders():End" }); SaleOrderGridView.DataSource = products.Take(10); SaleOrderGridView.DataBind(); }
private async Task LoadAsync() { statistics.Add(new Statistic { ThreadId = Thread.CurrentThread.ManagedThreadId, Message = "LoadAsync():Start" }); ProductProxyService.ProductServiceClient client = new ProductProxyService.ProductServiceClient(); SaleOrderProxyService.SaleOrderServiceClient saleOrderClient = new SaleOrderProxyService.SaleOrderServiceClient(); PersonProxyService.PersonServiceClient personClient = new PersonProxyService.PersonServiceClient(); var productsTask = client.GetProductsTaskAsync(); var saleOrdersTask = saleOrderClient.GetSaleOrdersTaskAsync(); var personTask = personClient.GetPersonsTaskAsync(); statistics.Add(new Statistic { ThreadId = Thread.CurrentThread.ManagedThreadId, Message = "LoadAsync():Before WhenAll()" }); await Task.WhenAll(productsTask, saleOrdersTask, personTask); statistics.Add(new Statistic { ThreadId = Thread.CurrentThread.ManagedThreadId, Message = "LoadAsync():Tasks all done." }); LoadProducts(productsTask.Result); LoadSaleOrders(saleOrdersTask.Result); LoadPersons(personTask.Result); statistics.Add(new Statistic { ThreadId = Thread.CurrentThread.ManagedThreadId, Message = "LoadAsync():Exit" }); ThreadGridView.DataSource = statistics; ThreadGridView.DataBind(); TimeSpan ts = pageWatch.Elapsed; PageElapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10); }