Post a reply

Options
Add an Attachment

If you do not want to add an Attachment to your Post, please leave the Fields blank.

(maximum 10 MB; please compress large files; only common media, archive, text and programming file formats are allowed)

Options

Topic review

martin

Re: c#: Backgroundworker and SessionFileTransferProgress

Sorry, but this is a generic programming question. It has nothing to do with WinSCP. Ask at an appropriate site, like Stack Overflow. And you will need to provide more details about your code, as your current question is a way too broad.
RobSteward

C#: BackgroundWorker and SessionFileTransferProgress

Hi guys,

I am trying to report the e.FileProgress and e.FileName of the SessionFileTransferProgress to my BackgroundWorker. How do I pass the BackgroundWorker to the function so that I can do:
bw.ReportProgress(Convert.ToInt16(e.FileProgress*100), "Transmitting file: " + e.FileName);
within the SessionFileTransferProgress function like so:
private static void SessionFileTransferProgress(object sender, FileTransferProgressEventArgs e)
{
    // Print transfer progress
    if (bolDebugMode)
        MessageBox.Show(e.FileName + " " + Convert.ToString(e.FileProgress));
    bw.ReportProgress(Convert.ToInt16(e.FileProgress*100), "Transmitting file: " + e.FileName)
    // Remember a name of the last file reported
    strLastFileName = e.FileName;
}

bw is the BackgroundWorker object I would like to send to the function. This is based on this example:https://winscp.net/eng/docs/library_session_filetransferprogress#example. In other functions I pass the BackgroundWorker like so:
private static bool emptyRawBackupFolder(BackgroundWorker bwWorker)
{
    bwWorker.ReportProgress(0, "Deleting files in RawBackupFolder");
    // some code
    bwWorker.ReportProgress(100, fileList.Count() + " have been deleted");
}