取消 Fetch 会导致客户端断开连接
Cancelling Fetch results in client being Disconnected
当使用 cancellationToken 取消 IMailFolder.Fetch
方法时,出现客户端断开连接的异常。
我调试了 MailKit 并将问题追溯到 ImapEngine.Iterate()
方法,其中有以下内容:
try {
while (current.Step ()) {
// more literal data to send...
}
if (current.Bye)
Disconnect ();
} catch {
Disconnect ();
throw;
} finally {
current = null;
}
在捕获到每种异常类型时断开客户端连接是否正确?
这是否也适用于我们正在取消操作的情况,以便我们可以优先考虑另一个操作,并且我们不想断开连接?
如果不断开套接字,您还能如何取消正在进行的命令?
当使用 cancellationToken 取消 IMailFolder.Fetch
方法时,出现客户端断开连接的异常。
我调试了 MailKit 并将问题追溯到 ImapEngine.Iterate()
方法,其中有以下内容:
try {
while (current.Step ()) {
// more literal data to send...
}
if (current.Bye)
Disconnect ();
} catch {
Disconnect ();
throw;
} finally {
current = null;
}
在捕获到每种异常类型时断开客户端连接是否正确?
这是否也适用于我们正在取消操作的情况,以便我们可以优先考虑另一个操作,并且我们不想断开连接?
如果不断开套接字,您还能如何取消正在进行的命令?