-1

私は非常に奇妙な問題に直面しています。私はそれが小さいものだと確信していますが、私はこれに私の髪を引っ張っています...

サードパーティのライブラリをアプリケーションに統合する作業を行っています。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 コミュニティであることも確認しました。

4

1 に答える 1

1

私は最終的にまったく新しいソリューションを作成し、そこにサードパーティのプロジェクトを入れました。次に、古いプロジェクトを新しいソリューションに 1 つずつ追加します。なぜそれが起こったのかは、私にはまだ不明です。しかし、私は今のところ先に進むつもりです。

于 2015-12-11T06:56:51.243 に答える