Como exibir o progresso do upload usando o C # HttpClient PostAsync

Estou criando um aplicativo de upload de arquivos para Android e iOS usando o Xamarin PCL e consegui implementar o upload de arquivos e algum tipo de barra de progresso, mas não está funcionando corretamente.

Vi algumas respostas no estouro da pilha para exibir o progresso do download, mas quero notificar meus usuários sobreEnvio progresso e não encontrou nenhuma solução.

Aqui está o meu código:

public static async Task<string> PostFileAsync (Stream filestream, string filename, int filesize) {
        var progress = new System.Net.Http.Handlers.ProgressMessageHandler ();

        //Progress tracking
        progress.HttpSendProgress += (object sender, System.Net.Http.Handlers.HttpProgressEventArgs e) => {
            int progressPercentage = (int)(e.BytesTransferred*100/filesize);
            //Raise an event that is used to update the UI
            UploadProgressMade(sender, new System.Net.Http.Handlers.HttpProgressEventArgs(progressPercentage, null, e.BytesTransferred, null));
        };

        using (var client = HttpClientFactory.Create(progress)) {
            using (var content = new MultipartFormDataContent ("------" + DateTime.Now.Ticks.ToString ("x"))) {
                content.Add (new StreamContent (filestream), "Filedata", filename);
                using (var message = await client.PostAsync ("http://MyUrl.example", content)) {
                    var result = await message.Content.ReadAsStringAsync ();
                    System.Diagnostics.Debug.WriteLine ("Upload done");
                    return result;
                }
            }
        }
    }

Algum tipo de progresso é exibido, mas quando o progresso atinge 100%, o arquivo ainda não foi carregado. A mensagem "Upload concluído" também é impressa algum tempo após o recebimento da última mensagem de progresso.

Talvez o progresso esteja exibindo bytes enviados para fora do dispositivo e ainda não carregados, por isso, quando diz que é 100%, todos os bytes são apenas enviados, mas ainda não recebidos pelo servidor?

Editar: Tentei esta solução:https://forums.xamarin.com/discussion/56716/plans-to-add-webclient-to-pcl e funciona um pouco melhor.

questionAnswers(2)

yourAnswerToTheQuestion