private async void ButtonClick(object sender, RoutedEventArgs e)
{
cts = new CancellationTokenSource();
cts.CancelAfter(1000); // cancel after 1 seconds
var _socket = new StreamSocket();
var connectAsync = _socket.ConnectAsync(new HostName("8.8.8.8"), "22",
SocketProtectionLevel.PlainSocket);
var connectTask = connectAsync.AsTask(cts.Token);
await connectTask;
}
为什么以下代码不起作用?使用来自其他网站的建议我被告知创建新的CancellationTokenSource并设置超时。
不考虑超时,代码将"阻止"大约10-15s然后将触发Timeout异常而不是1s。
有什么想法吗?