問題タブ [handle]
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++ - _beginthreadexのメモリが不足しています
私は現在、マルチスレッドアプリケーションをデバッグしています。このアプリケーションは、一部の関数が約2000回呼び出されるまでエラーなしで実行されます。その後、アプリケーションは応答を停止します。これは、メモリ不足エラーで失敗した_beginthreadexまで追跡できます。
ProcessExplorerでアプリケーションを調べると、リークされたスレッドハンドルの数が増え、エラーが発生するまで仮想メモリが増えていることがわかります。プライベートバイトは低いままです。リークされたスレッドはCoInitializeも呼び出し、CoUninitializeを呼び出すことはありません。
私が知りたいのは:
- 仮想メモリは何を表していますか?
- 仮想メモリはリークされたスレッドハンドルに関連していますか?
- COMまたはMSXML6(スレッドによって呼び出される)はスレッドハンドルをコピーしますか?どのようにそれらを閉じることができますか?
私の質問が明確で、ルールを壊さないことを願っています。それは私の最初の質問であり、英語は私の最初の言語ではありません。:-(
言及するのを忘れました。スレッドが終了すると、_beginthreadexによって返されるハンドルを閉じます。これにより、開いているハンドルの数が約半分に減りますが、仮想メモリには影響しません。さらに、CloseHandle呼び出しを挿入する前に、ProcessExplorerに表示される各スレッドハンドルのスレッドのハンドル数は2でした。
編集
以前はこれを含めなかったのでバカになりました。VisualStudioでデバッグしているときにアクティブなスレッドの数が増えないため、スレッドが終了することを知っています。また、リークされたメモリのすべてが、かなり大きなライブラリで使用されているTerminateThreadの呼び出しの結果であるとは限らないことを願っています。また、それを変更したくないと思います。
私の質問のcom部分では、!htrace -diffを使用して、msxmlによって割り当てられたが、関数呼び出しの終了後に解放されなかったスレッドハンドルを見つけました。これらはリークに関連しているのでしょうか、それとも後で閉じられるのでしょうか。
それらすべてのコメントに感謝しますが、問題はまだそこにありますが、彼らは私がそれをよりよく理解するのを助けました。
c# - Control の強制作成ハンドル
現在サイレントプリントモジュールを作成中です。私が使用している現在のコントロールは、コントロール ハンドルが既に作成されていることを確認しています ( IsHandleCreated
)。私はこれをごまかすためにあらゆることをしましたが、まったく運がありませんでした。
画面に何も表示せずにコントロールのハンドルを作成する方法についてのアイデアはありますか?
managed-c++ - Managed C++ ^ (ハンドル) --> それは何であり、参照やポインタとどのように関係していますか
Managed C++ のオブジェクトへのハンドルの違いは何ですか?
そのような:
そして通常の C++ ポインタ?
また、それらは C# の参照とどのように関連していますか?
.net - Windows ハンドルの作成中にエラーが発生しました
.net 2.0 Windows アプリケーションを作成しました。このアプリケーションは、フォーム コントロールを動的に作成します。アプリケーションを実行しようとすると、「Windows ハンドルの作成中にエラーが発生しました」という例外がスローされます。この後、アプリケーションはハングアップし、何も起こりません。初回はちゃんとフォームが表示されます。特定のイベントで、同じフォームをリロードしようとしていますが、そのときにこの例外が発生しています。誰でもこれを取り除く方法を知っています。どんな種類の助けも素晴らしいでしょう:)
delphi - モジュールと Delphi
動的リンクを使用して (BPL) モジュールをアプリにロードしています。ロードはこれらのモジュールに組み込まれた単純なフォームで正常に機能しますが、(3 番目の) コンポーネントとコードを 1 つのフォームに追加すると、このエラー メッセージが表示されます」無効なクラス タイプキャスト"が初めて発生しました。2 回目はロードが正常に機能したため、その例外をキャッチし、そのモジュールを再度ロードしました。これが私の回避策ですが、なぜ発生するのでしょうか?
前もって感謝します。
asp.net - w3wp にはダウンロード ファイルのハンドルがあります
「asp.net 2.0」の isapi フィルターを使用して .exe を処理するように iis をセットアップし、動的な URL 置換を有効にしました。このために、iis で拡張機能をセットアップし、次の行を web.config に追加しました。これまでのところ正常に動作します。
<add path="*.exe" verb="*" type="System.Web.StaticFileHandler" />
問題は、ポイント w3wp プロセスがこれらのファイルに複数のハンドルを持っていることです。おそらく、誰かが現在それらをダウンロードしているためです。
ファイルに排他ハンドルを置かないように iis/asp.net に指示する方法はありますか? サイトが稼働していても交換したい。これは、asp.net がこれらのファイルを処理しない限り機能します。
c - C で最終行の前に 1 行追加する方法
こんにちは、Unix プラットフォームで C を使用しています。C で最終行の前に 1 行追加する方法を教えてください。追加モードで fopen を使用しましたが、最終行の前に 1 行追加できません。
ファイルの最後の 2 行目に書き込みたいだけです。
c - Cのポインターとハンドル(別々のものを伝えるために使用される用語ですか?)
最近、構造体へのポインタをハンドルと呼んでいる個人のホワイトペーパーを読みました。作者は明らかに、以前にWindowsプラットフォームでCコードを書いたことがある人でした。グーグルは、Windowsプログラマーがハンドルを介してシステムコンポーネントと対話することを示します。Windowsプログラマーがすべての構造体ポインターをハンドルとして参照するのが一般的な方法であるかどうか疑問に思っていますか?それとも、ハンドルという用語は、構造体へのポインターを超えた何かを伝えることを意味していますか?私はLinuxCプログラマーとして質問しています。
私が言及しているホワイトペーパーは、Duff、Heroux、およびPozoです。スパース基本線形代数サブプログラムの概要:BLASテクニカルフォーラムの新しい標準。ACM Transactions on Mathematical Software、Vol 28、No. 2、June 2002、Pages239-267。
java - JNI クラッシュを処理する
レガシー C コードを含む dll があり、JNI 経由でこの dll を呼び出しますが、C コードがクラッシュして JVM が終了することがあります。JVM のクラッシュを回避する方法はありますか? JNI 障害を処理して、JVM を存続させることはできますか? :)