C# 使用和调用EventHandler的问题
我正在使用并且在使用C# 使用和调用EventHandler的问题,c#,event-handling,console-application,C#,Event Handling,Console Application,我正在使用并且在使用事件处理程序时遇到一些问题 根据文件,它有以下事件: 我对其中两个感兴趣: 转让完成事件 失败事件 我想在传输完成时显示一条消息,如果连接失败,则重新启动上载 在我的课堂上,我有以下几点: public static void uploadToSFTP() { try { SFTP myConnection = new SFTP(); myConnection.EnableLoggi
事件处理程序时遇到一些问题
根据文件,它有以下事件:
我对其中两个感兴趣:
转让完成事件
失败事件
我想在传输完成时显示一条消息,如果连接失败,则重新启动上载
在我的课堂上,我有以下几点:
public static void uploadToSFTP()
{
try
{
SFTP myConnection = new SFTP();
myConnection.EnableLogging();
myConnection.HostAddress = "servername";
myConnection.UserName = "username";
myConnection.Password = "password";
myConnection.CurrentDirectory = "directory";
myConnection.Connect();
//UPLOADING FILE TO SFTP SERVER
myConnection.UploadFileAsync(yesterdaysZipFile, localZipFileName);
while (myConnection.IsBusy == true)
{
//PRINT HOW LONG REMAINING FROM UPLOAD
Console.WriteLine(myConnection.EstimatedTimeRemaining);
}
//declaring an eventhandler
myConnection.TransferCompleteEvent += SFTPCompleted;
myConnection.Disconnect();
myConnection.Dispose();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
然后我有
public static void SFTPCompleted(Object sender, TransferCompletedEventArgs e)
{
Console.WriteLine("Completed");
}
我的问题是:
myConnection.TransferCompleteEvent += SFTPCompleted;
当我使用调试器到达这一行时,它会跳过并转到下一行,而这一行永远不会转到
public static void SFTPCompleted(Object sender, TransferCompletedEventArgs e)
{
Console.WriteLine("Completed");
}
我做错了什么?
关于FailureEvent
我甚至无法编译它:
myConnection.FailureEvent += TransferFailed;
以下是活动:
public static void TransferFailed(Object sender, SFTP.FailureEventHandler e)
{
Console.WriteLine("failed");
}
我遇到以下编译器错误:
错误1“TransferFailed”的重载与委托“KellermanSoftware.NetSFtpLibrary.SFTP.FailureEventHandler”匹配
这是我第一次使用这个图书馆。任何建议都会有帮助。这一行:
myConnection.TransferCompleteEvent += SFTPCompleted;
正在附加事件处理程序
调用UploadFileAsync
并等待事件处理程序停止忙碌后,您正在附加事件处理程序。在这一点上,事件可能已经触发,所以你错过了关于它的消息
创建myConnection
对象后,应立即附加事件处理程序
SFTP myConnection = new SFTP();
myConnection.TransferCompleteEvent += SFTPCompleted;
第二个问题是无法附加
TransferFailed
事件。这是因为处理函数中的参数错误。我猜应该是:
public static void TransferFailed(Object sender, SFTP.FailurEventArgs e)
查看
SFTP.FailureEventHandler
声明。它将告诉您需要哪些参数。您完全正确。当我把它向上移动时,它起作用了。使用文档,我修复了失败的事件<代码>公共静态无效传输失败(对象发送方,系统异常e)。非常感谢。