Vâng, vấn đề của tôi là gọi đang đợi bảng.ExecuteAsync (...) trên Azure Storage Table sẽ chèn dữ liệu được yêu cầu, nhưng không bao giờ kết thúc (không trả lại TableResult). Trường hợp tương tự với các hoạt động InsertOrUpdate và Update. Tôi cũng đã thử các bảng khác nhau với số lượng thuộc tính khác nhau - cùng một vấn đề.Bàn lưu trữ Azure: Đang đợi bảng.ExecuteAsync (ChènOperation) thực hiện, nhưng không bao giờ kết thúc
Khi tôi gọi bảng.Execute (...) - mọi thứ hoạt động tốt cho mọi loại hoạt động.
Dưới đây là mã của tôi - đơn giản như vậy:
gọi Outer (nó được đặt trong MVC Controller trong hành động async):
List<Task<ServiceResult<Boolean?>>> addPostTasks = new List<Task<Common.ServiceResult<bool?>>>();
foreach (var userStream in userStreams)
{
Task<ServiceResult<Boolean?>> addPostTask = postsStorageSvc.AddImagePost(...);
postsAddImagePostTasks.Add(addPostTask);
}
Task.WaitAll(addPostTasks.ToArray());
Cách gọi:
public async Task<ServiceResult<Boolean?>> AddImagePost(...)
{
ServiceResult<Boolean?> result = new ServiceResult<bool?>(null);
try
{
PostTableEntity newPost = new PostTableEntity(streamId.ToString(), Guid.NewGuid().ToString(), creatorId, date, htmlText);
TableOperation insertOperation = TableOperation.Insert(newPost);
//Following line never ends!
TableResult tableResult = await this._storageTableBootstrapper.Table.ExecuteAsync(insertOperation);
//Following line works perfect - but is not ASYNC
TableResult tableResult = this._storageTableBootstrapper.Table.Execute(insertOperation);
}
catch (Exception ex)
{
result.Result = false;
result.Errors.Add("AzurePostsStorageService Unexpected error: " + ex.Message);
}
return result;
}
Bạn gọi phương thức này bằng cách nào? –
Ý của bạn là gì? Khối mã này có trong phương thức không đồng bộ, tôi đang cập nhật câu hỏi của mình để hiển thị các đường xung quanh. –
Hiển thị chữ ký phương thức và cách bạn gọi nó. Bạn có thể chặn nó bằng cách sử dụng 'Task.Result' hoặc' Task.Wait'? –