Mostrar el progreso de la descarga de archivos en una barra de progreso con SSH.NET

Quiero mostrar el progreso de un proceso de descarga en miProgressBar. Traté de hacer algo comoeste código para subirPero fallé. Aquí hay un ejemplo de mis intentos fallidos

private void button5_Click(object sender, EventArgs e)
{
    Task.Run(() => Download());
}

private void Download()
{
    try
    {
        int Port = (int)numericUpDown1.Value;
        string Host = comboBox1.Text;
        string Username = textBox3.Text;
        string Password = textBox4.Text;
        string SourcePath = textBox5.Text;
        string RemotePath = textBox6.Text;
        string FileName = textBox7.Text;

        using (var file = File.OpenWrite(SourcePath + FileName))
        using (var Stream = new FileStream(SourcePath + FileName, FileMode.Open))
        using (var Client = new SftpClient(Host, Port, Username, Password))
        {
            Client.Connect();
            progressBar1.Invoke((MethodInvoker)
            delegate
            {
                progressBar1.Maximum = (int)Stream.Length;
            });
            Client.DownloadFile(RemotePath + FileName, /*file*/ Stream, DownloadProgresBar);
            Client.Disconnect();
        }
    }
    catch (Exception Ex)
    {
        System.Windows.Forms.MessageBox.Show(Ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}
private void DownloadProgresBar(ulong Downloaded)
{
    progressBar1.Invoke((MethodInvoker)
        delegate
        {
            progressBar1.Value = (int)Downloaded;
        });
}

Gracias de antemano

Respuestas a la pregunta(1)

Su respuesta a la pregunta