Azure Storage Client kütüphanesi 2.1 ile çalışma, Tablo depolama eşzamansız sorgu sorgusu üzerinde çalışıyorum.Azure Table Storage ile Table.ExecuteQuerySegmentedAsync() nasıl kullanılır?
public async Task<List<TAzureTableEntity>> GetByPartitionKey(string partitionKey)
{
var theQuery = _table.CreateQuery<TAzureTableEntity>()
.Where(tEnt => tEnt.PartitionKey == partitionKey);
TableQuerySegment<TAzureTableEntity> querySegment = null;
var returnList = new List<TAzureTableEntity>();
while(querySegment == null || querySegment.ContinuationToken != null)
{
querySegment = await theQuery.AsTableQuery()
.ExecuteSegmentedAsync(querySegment != null ?
querySegment.ContinuationToken : null);
returnList.AddRange(querySegment);
}
return returnList;
}
o kadar Tablo Storage yuvarlak gezileri çok olacak geri geliyor büyük bir veri kümesi olmadığını varsayalım: Bu kodu yarattı. Sahip olduğum problem, bir veri setini beklediğimiz, onu bir bellek içi listeye eklediğimiz, daha fazla veri beklediğimiz, onu aynı listeye eklediğimiz, daha fazla veri beklediğimiz, listeye eklediğimiz ... ve böylece vb. Neden bir Task.Factory.StartNew() düzenli bir TableQuery etrafında wrap? böylece gibi:
public async Task<List<TAzureTableEntity>> GetByPartitionKey(string partitionKey)
{
var returnList = await Task.Factory.StartNew(() =>
table.CreateQuery<TAzureTableEntity>()
.Where(ent => ent.PartitionKey == partitionKey)
.ToList());
return returnList;
}
de genişlemiş biz ileri geri çok SynchronizationContext sıçrayan değil konum gibi bu şekilde görünüyor. Yoksa gerçekten önemli mi?
Düzenleme
yukarıda belirtilen iki senaryo arasındaki fark nedir Soru Rephrase için?
Bunu kendi zaman uyumsuz stilini "segmenti" koymak ve kullanma diyoruz (yanlış) ConfigureAwait. –
@PauloMorgado - İronik olarak aslında TableQuerySegement ve deyim zaten ayrı bir yöntemde ancak ben Görevdeki ConfigureAwait (false) yöntemini bilmiyordum. Bahşiş için teşekkürler! – Hallmanac
ConfigureAwait (false) tüm kitaplık kodları için önerilir ve tüm kullanıcı arabirimi olmayan uygulama kodlarına genişletirim. –