.NETコアで試してみたところ、ローカルのTCPサーバーに接続しようとしました。同期しても問題はありません(最初にConnect
メソッドを参照)。私がasync
/await
(二番目のConnectAsync
メソッドを参照)でそれをやろうとすると、それは狂ってしまい、ほぼundebuggableになります。 TcpClientを正しく使用すると、ウェブ上でまだ利用可能な例がないので、私は訴えません。正確な問題はTcpClient.GetStream
を呼び出した後に始まります。私はJustMyCode
を無効にしてデバッグしようとしましたが、Visual StudioコードではAll exceptions
チェックボックスにチェックしましたが、TcpClient.GetStream
にジャンプしません。 async
モードで.NETコア:asyncを使用するとTcpClient.GetStreamがクラッシュする
観察:
- は、時にはそれは
TcpClient.GetStream
にクラッシュ直接 - 時にはそれが(私は最後
Console.WriteLine
が時々コンソールに表示されました) - プログラムすぐに呼び出し元の関数が戻った後にクラッシュしますデバッガはシャットダウンします(例外はスローされません)
- 戻りコードは常に0(
The program 'bla' has exited with code 0 (0x00000000)
) です。
私のシステム/プロジェクトの設定:
- のWindows 10 64ビット(教育)
- .NETのコア1.0.0
- コンソールアプリケーション
- ローカルTCPサーバ、したがって、何の接続が を発行していません
- Visual Studioコード(重要ではない)
Co de:
私は接続(非非同期)バージョンに困惑しています。接続している間に接続して、今すぐストリームを取得しようとします。接続するだけでストリームを取得することができます。 – BugFinder
ConnectAsyncは同じインスタンスで1回または複数回呼び出されますか? – Guillaume
スローされた例外を取得しようとしましたか?多分それはヒントを与えるでしょう。あなたがこれを分かち合うことができれば良いだろう。 – Nitram