再会!
我需要异步运行一些任务System.Threading.Tasks.Task,但问题是它永远不会完成,我的应用程序永远卡在等待它的执行。
具体来说,我一直在使用SslStream. 在客户端应用程序上,我启动了异步身份验证操作 ( await) stream.AuthenticateAsClientAsync(null)。服务器立即拒绝它(认证问题),并且正在运行的异步操作,事实证明,可以无限期挂起。结果,我的客户端应用程序无法继续工作。
问题:我怎样才能异步启动一个任务System.Threading.Tasks.Task,让它在例如 10 秒后被取消?
是的,我看到这个甜蜜的方法重载,但由于我的平台( .Net Framework 4.8 )它不适合。
嗯,像这样
也就是说,授权过程本身不会被中断,但
SslStream如果发生超时,则可以随意使用。实际上Dispose(),它会中断所有需要的东西。PS 是时候至少迁移到 .NET Core 3.1