У меня есть функция в консольном приложении ac #, которая вызывает асинхронную функцию (моя цель - вызвать функцию azure через консольное приложение. Эта функция отвечает за преобразование zip-файлов в csv-файлы и, конечно, я бы хотелаобрабатывать zip-файл параллельно)
Здесь вы можете найти часть моего кода:
Parallel.ForEach(blobs, (currentblob) =>
{
string FileUrl = currentblob.Uri.ToString();
string FileName = currentblob.Uri.Segments.Last();
//string content = "{ \"fileUri\": \""+ currentblob.Uri.ToString()+ "\" , \"fileName\": \""+ currentblob.Uri.Segments.Last()+"\"}";
Console.WriteLine(currentblob.Uri + " #### " + currentblob.Uri.Segments.Last());
var values = new Dictionary<string, string>
{
{ "fileUri", currentblob.Uri.ToString() },
{ "fileName", currentblob.Uri.Segments.Last() }
};
var content = new FormUrlEncodedContent(values);
string baseURL = @"https://<afu>.azurewebsites.net/api/process_zip_files_by_http_trigger?code=45"; ;
//string urlToInvoke = string.Format("{0}&name={1}", baseURL, FileUrl, FileName);
Run(baseURL, content);
});
И у меня есть асинхронная функция:
public static async void Run(string i_URL,FormUrlEncodedContent content)
{
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.PostAsync(i_URL,content);
string responseString = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseString);
Console.ReadLine();
}
Я могузапустить мой код без каких-либо ошибок, но он не обрабатывает ZIP-файлы. Но после того, как я прекращаю отладку, я начинаю обрабатывать файлы !!!
Я думаю, что-то не так с моей асинхронной функцией. У вас есть идея, почему мой код не работает правильно? Правильно ли я вызываю асинхронную функцию?