私は非常に奇妙な問題に直面しています。私はそれが小さいものだと確信していますが、私はこれに私の髪を引っ張っています...
サードパーティのライブラリをアプリケーションに統合する作業を行っています。lib をダウンロードしたところ、サンプル コードが付属していました。サンプル コードを問題なくビルドして実行できました。両方のプロジェクトで何も変更せずに、lib + サンプル コードを自分のソリューション フォルダーにコピーし、それらを自分のソリューションに追加して、ビルドして実行します。サンプル アプリの最後で ThreadAbortException が発生します。これは別のフォルダで動作していました?!!!!?!
このコードは、リスニング スレッド内でソケット接続を開きます。スレッドは、ソケット情報を監視および消費します。次に、プログラムが終了する前に、runner がスレッドである runner.Abort() を実行します。私が理解できないのは、元の解凍されたフォルダーに ThreadAbortException をスローしない理由です。しかし、自分のソリューションに正確にコピーすると、スローされますか?
Thread.ResetAbort() の使用は見当たりませんでした。
これについては助けが必要です。前もって感謝します。
私が試したこと:.netフレームワークのバージョンを変更する(どのように変更しても、元のディレクトリは正常に動作しますが、独自のソリューションはThreadAbortExceptionでチョークします)
これは、Visual Studio 2013 コミュニティ エディションにあります。
読んでくれてありがとう。
以下編集***
構成ファイルは同じです。bin ディレクトリは、生成された pdb ファイルにサイズの違いがあることを示していますが、他のファイルのサイズは同じに見えます。機能しなかったコードの pdb ファイルは小さくなっています。
lib プロジェクトとサンプル プロジェクトの両方の元のディレクトリの bin を削除し、サンプル プロジェクトから参照を削除して、ソリューションから再度追加しました。ビルドされ、同じサイズ(他のソリューションよりも大きい)でビルドされます。それを実行すると、ThreadAbortException なしで正常に終了しました。次に、私は自分のソリューションで同じことを行い、より小さいサイズの pdb でビルドし、ThreadAbortException が表示されました
また、Visual Studio の両方のインスタンスが 2013 コミュニティであることも確認しました。