public void CloudTableExistsAPM() { CloudTableClient tableClient = GenerateCloudTableClient(); string tableName = GenerateRandomTableName(); CloudTable tableRef = tableClient.GetTableReference(tableName); try { using (ManualResetEvent evt = new ManualResetEvent(false)) { IAsyncResult result = null; tableRef.BeginExists((res) => { result = res; evt.Set(); }, null); evt.WaitOne(); // Table should not have been deleted as it doesnt exist Assert.IsFalse(tableRef.EndExists(result)); } tableRef.Create(); using (ManualResetEvent evt = new ManualResetEvent(false)) { IAsyncResult result = null; tableRef.BeginExists((res) => { result = res; evt.Set(); }, null); evt.WaitOne(); // Table should not have been deleted as it doesnt exist Assert.IsTrue(tableRef.EndExists(result)); } tableRef.Delete(); using (ManualResetEvent evt = new ManualResetEvent(false)) { IAsyncResult result = null; tableRef.BeginExists((res) => { result = res; evt.Set(); }, null); evt.WaitOne(); // Table should not have been deleted as it doesnt exist Assert.IsFalse(tableRef.EndExists(result)); } } finally { tableRef.DeleteIfExists(); } }