問題タブ [unmanagedresources]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - アンマネージ コード ブロックによって作成された例外を処理する方法
私のコードでは、プロセス呼び出しを通じてexeファイルを実行しています。exeファイルによって生成された例外を処理する方法。誰か助けてください。
c# - 管理されていないリソースを手動で破棄するにはどうすればよいですか?
私は次のようなアンマネージコードを使用しています-
Disposeを呼び出すときに、このextern静的オブジェクトを破棄/クリーンアップする方法に関する提案はありますか?
.net - .NET のマネージド リソースとアンマネージド リソース。違いは何ですか?
私は、Wrox の Professional C# 4 および .NET 4 の「メモリ管理とポインター」の章、特にガベージ コレクションが .NET でどのように機能するかについて読んでいました。「ガベージ コレクターは、管理されていないリソース (ファイル ハンドル、ネットワーク接続、データベース接続など) を解放する方法を認識していない」ため、そのようなクラスはデストラクタ(別名「ファイナライザ」) を宣言するか、実装する必要があります。 IDisposable
.
これらの「管理されていないリソース」の例はすべて、アプリケーションとは無関係で .NET Framework から独立したシステムとの対話に関連しているようです。ただし、それが完全な区別であるかどうかはわかりませんので、
管理されていないリソースにあり、管理されているリソースにはない特徴とは正確には何ですか?
c# - C# にアンマネージ リソースはありますか?
C# のマネージド リソースとアンマネージド リソースについて友人と話し合いました。
私の友人によると:
1.a) C# のすべてのオブジェクトは管理されており、C# でコーディングする場合、管理されていないオブジェクトやリソースのようなものはありません。アンマネージ リソースの概念は、C++ にのみ付属しています。
1.b) C++ で管理されたリソースまたは管理されていないリソースがあるかどうかにかかわらず、明示的に解放する必要があります。C# には自動ガベージ コレクターがあるため、リソースの管理について考える必要はありません。
私によると:
2.a) 管理されていないリソースがない場合、なぜ C# でファイナライザーまたは Dispose メソッドが必要なのですか?
2.b) ガベージ コレクターには、割り当てられたメモリに関する情報のみがあり、リソースの状態に関する情報はありません。したがって、C# でリソースを解放するには、dispose メソッドを使用する必要があります。
上記の引数のどれが正しいか、および c# のアンマネージ リソースに関する情報が存在するかどうかを理解するのに助けが必要ですか?
前もって感謝します。
c# - UnmanagedMemoryStream の破棄とメモリ リーク
次のコード スニペットを検討し、using句または明示的な破棄がないことを見落としています。
unmanagedMemoryStreamで Dispose() が呼び出されるのはいつですか? 包含メソッドが非静的になった場合、これはどのように変化しますか? この状況でアンマネージ メモリのリークが発生する可能性はありますか?
c# - マネージド コードからアンマネージド dll でリソース文字列テーブルを使用する
アンマネージ MFC アプリケーションがあります。アプリケーションの CLI ラッパーを作成し、DLL に変換しました。管理されていないコードには、あちこちにメッセージを表示するために使用される文字列テーブル リソースがあります。
これで、C# からアンマネージ コードを呼び出して、内部ロジックを使用できるようになりました。ただし、リソース文字列を読み取ろうとすると、コードはエラーになります。リソースがロードされていないことを願っているので、kernel32.dll から P/invoke LoadLibraryEx を含めてみましたが、まだ使用されていません。アンマネージ コードにそのリソース ファイルを使用させるにはどうすればよいですか? それはできますか、それとも変更する必要がありますか??
ありがとう。
c# - C# で同じスコープに対して複数の using ステートメントを使用する場合、Dispose() メソッドが呼び出される順序に保証はありますか?
つまり、stf2 の Dispose() メソッドが最初に呼び出されることが保証され、次に stf1 の Dispose() メソッドが 2 番目に呼び出されることが保証されますか? (基本的に: Dispose() メソッドは、それらが属するオブジェクトの割り当てとは逆の順序で呼び出されますか?)
android - サービスやその他のリソースを明示的に閉じる標準的な方法はありますか?
たとえば、データベース接続、スレッド化、または IO ストリーム (明示的な終了/解放が必要なすべて) を使用する場合、これを行う標準的な方法はありますか? おそらく、フレームワーク/クラスの消費者が私のクラスのこのリソースのクリーンアップロジックを呼び出すことができるように、いくつかの標準インターフェイスを実装することでしょうか?
.NET Framework
アナログの経験がある人にとってはIDisposable
インターフェースになるので、このインターフェースを実装することで、すべてのリソースクリーンアップロジックをDispose()
メソッドに入れることができるので、クラスの消費者はクラスのインスタンスがインターフェースを実装しているかどうかを確認してから明示的IDisposable
に呼び出すことができます。Dispose()
Androidにも何かが組み込まれていますか?
.net - アンマネージ リソースがクリーンアップされているかどうかの単体テスト
TDD を使用して、アンマネージ リソースを使用する System.IO.Stream オブジェクトの単体テストを作成しています。私のプロジェクトは多くのそのようなストリームで構成されており、実装が実際に管理されていないリソースを破棄するときにクリーンアップするかどうかをテストしたいと考えています。
どうすればこれを行うことができますか?
今朝は少し疲れているだけかもしれませんが、思いつくのは 1,000 個のインスタンスを作成して破棄し、メモリ消費量を調べることだけです。
また、「Read() からタイムアウトしない場合はどうなるか」についても考える必要があるため、関連する可能性のあるストリームをテストするための優れた普遍的で超幻想的な方法があるかどうかを考えなければなりません。
scala - SBT .scala プロジェクト構成で複数の管理されていないディレクトリから jar を追加するにはどうすればよいですか
複数の管理されていないディレクトリを持つ可能性のあるプロジェクトを SBT でビルドしようとしています。単一のディレクトリがある場合、次のように簡単に実行できます。
しかし、管理されていない jar を含むディレクトリが 2 つあるため、それらすべてを追加できる必要があります。hereでいくつかの情報を見つけましたが、完全な.scalaファイルのビルドにはまだ役に立たないようです。
ここで問題を示す簡単なプロジェクトを作成しました。以下は私のBuild.scalaファイルです。
アップデート
sbt-users リストの助けを借りて、 unmanaged-jarsを正しく定義できましたが、コードはまだコンパイルされません (ただし、sbt show unmanaged-jarsはファイルを正しく表示します)。