StreamSocketListener
を使用してポート上の接続を待機しています。私はそれが永遠に聞くことを望んでいない、それは私が次のコードを使用している特定の秒数の後にキャンセルする必要があります。指定したタイムアウト後にタスクがキャンセルされない
remoteListener = new StreamSocketListener();
try
{
CancellationTokenSource ctsTimeout = new CancellationTokenSource();
ctsTimeout.CancelAfter(1000); // in milliseconds
await remoteListener.BindServiceNameAsync(receivingPortForRemoteRequests.ToString()).AsTask(ctsTimeout.Token);
remoteListener.ConnectionReceived += remoteListener_ConnectionReceived;
}
catch (Exception exc) // supposed to produce a TaskCanceledException
{
isCancelled = true;
}
私の問題は、このコードは、任意の時間間隔の後Exception
をスローすることはありませんということですが、ちょうど聴き続けています。コードは、私がthis MSDN pageから見つけたものに基づいています。
誰かが間違っていることを知っていますか?前もって感謝します!
私はオフになるかもしれませんが、あなたはまたconnectasyncのいくつかの形式が必要ですか?またはStreamSocketConnectOperation(ctsTimeout.tokenをパラメータとして受け入れる) – GamerJ5
@ GamerJ5ポートでTCP接続をリスンしています。 'ConnectionReceived'イベントで、私は' StreamSocket'を取得し、それを通して入出力ストリームを通してクライアントに読み書きすることができます。それは大丈夫、私はちょうどタイムアウトの後にそのポートで聞いて停止することはできません動作します。 –
@ GamerJ5:クライアントによって「接続」操作が開始されます。上記のコードはサーバーからのものです。 –