public void ListTablesSegmentedMaxResultsAPM()
        {
            CloudTableClient tableClient = GenerateCloudTableClient();

            TableResultSegment segment      = null;
            List <CloudTable>  totalResults = new List <CloudTable>();

            int segCount = 0;

            do
            {
                using (ManualResetEvent evt = new ManualResetEvent(false))
                {
                    IAsyncResult asyncRes = tableClient.BeginListTablesSegmented(string.Empty,
                                                                                 10,
                                                                                 segment != null ? segment.ContinuationToken : null,
                                                                                 null,
                                                                                 null,
                                                                                 (res) =>
                    {
                        evt.Set();
                    },
                                                                                 null);

                    evt.WaitOne();

                    segment = tableClient.EndListTablesSegmented(asyncRes);
                }

                Assert.IsTrue(segment.Count() <= 10);

                totalResults.AddRange(segment);
                segCount++;
            }while (segment.ContinuationToken != null);

            Assert.AreEqual(totalResults.Count, tableClient.ListTables().Count());
            Assert.IsTrue(segCount >= totalResults.Count / 10);
        }