gpt4 book ai didi

c# - 文件传输详细信息持续绑定(bind),直到使用 WPF 在窗口中传输文件

转载 作者:行者123 更新时间:2023-12-03 22:02:11 27 4
gpt4 key购买 nike

我已经创建了将文件从客户端传输到服务器的项目。我已经完成文件传输并获取文件传输详细信息,例如文件名(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;

我需要在窗口中绑定(bind)此传输的详细信息。我在文件传输时完成了绑定(bind)。但我需要如何使用 WPF 在窗口中绑定(bind)每个第二个文件传输的详细信息。因为我需要显示文件传输的进度。

最佳答案

WinSCP .NET 程序集 Session.FileTransferProgress事件不断触发。

因此,您需要做的就是更新事件处理程序中的控件。

由于该事件是在后台线程上触发的,因此需要使用Invoke 。请参阅Updating GUI (WPF) using a different thread .

有关 WinForms 代码示例,请参阅 WinSCP 文章 Displaying FTP/SFTP transfer progress on WinForms ProgressBar 。对于 WPF,代码将非常相似。

关于c# - 文件传输详细信息持续绑定(bind),直到使用 WPF 在窗口中传输文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43364376/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com