我已经创建了将文件从客户端传输到服务器的项目。我已经完成了文件传输并获取了文件传输的详细信息,例如文件名(something.avi)和传输的文件百分比(10%),如下所示,每当我传输文件时,我都会使用下面的事件处理程序来了解该文件转移的详细信息。
private static void SessionFileTransferProgress(object sender, FileTransferProgressEventArgs e)
{
// New line for every new file
if ((_lastFileName != null) && (_lastFileName != e.FileName))
{
Console.WriteLine();
}
// Print transfer progress
Console.Write("\r{0} ({1:P0})", e.FileName, e.FileProgress);
// Remember a name of the last file reported
_lastFileName = e.FileName;
}
private static string _lastFileName;
我需要在窗口中绑定此传输的详细信息。我在文件传输时完成了绑定。但我需要如何使用 WPF 在窗口中绑定每个第二个文件传输的详细信息。因为我需要显示文件传输的进度。
WinSCP .NET 程序集Session.FileTransferProgress https://winscp.net/eng/docs/library_session_filetransferprogress事件被连续触发。
因此,您需要做的就是更新事件处理程序中的控件。
由于事件是在后台线程上触发的,因此您需要使用Invoke https://learn.microsoft.com/en-us/dotnet/api/system.windows.threading.dispatcher.invoke. See 使用不同的线程更新 GUI (WPF) https://stackoverflow.com/q/4253088/850848.
有关 WinForms 代码示例,请参阅 WinSCP 文章在 WinForms ProgressBar 上显示 FTP/SFTP 传输进度 https://winscp.net/eng/docs/library_example_winforms_progressbar。对于 WPF,代码将非常相似。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)