問題タブ [critical-section]

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.

0 投票する
2 に答える
841 参照

delphi - Delphi 2009:ネットワークアプリケーションがクリティカルセクションをリークするのを防ぐにはどうすればよいですか?

Vista認定の一環として、Microsoftは、アプリケーションがロックを保持せずに終了することを確認したいと考えています(クリティカルセクション)。

テストケース31.指定されたAppVerifierチェックを使用してアプリケーションがデバッガーに侵入しないことを確認します(Req:3.2)

結局のところ、Delphi 2009を使用して構築されたネットワークアプリケーションはデバッガーに侵入し、次のような役に立たないメッセージを表示します。

[移動]ボタンを数回押すと、実際のエラーが発生します。

私のコードがリークしないTCriticalSectionとすると、Delphiがリークしないようにするにはどうすればよいですか。

0 投票する
3 に答える
8120 参照

c# - C# でロック スコープに複数の変数を使用する方法

2 つのロッカー オブジェクトが空いている場合にのみ、コード ブロックを実行する必要がある状況があります。

私は次のようなものがあることを望んでいました:

しかし、そのようなことはないようです。つまり、これを行う唯一の方法は次のとおりです。

これでも期待どおりに動作しますか? コードはコンパイルされますが、期待どおりの結果が得られるかどうかはわかりません。

0 投票する
2 に答える
503 参照

c# - C# の条件に基づいてクリティカル セクションを保護する

私は奇妙なシナリオを扱っています。

マルチスレッド環境で SQL データベースに保存 (挿入/更新) するために EntityFramework を使用しています。問題は、データベースにアクセスして、フィールド値を設定するために特定のキーを持つレジスタが既に作成されているか (実行中)、または別の値を設定するのが新しいか (保留中) を確認する必要があることです。これらのレジスタは、一意の GUID によって識別されます。

エンティティが他のプロセスに存在しないことがわかっているため、ロックを設定することでこの問題を解決しました。つまり、異なるプロセスに同じ GUID がなく、正常に動作しているようです。次のようになります。

しかし、これは、保存するリクエストが大量にある場合、キューに入れられることを意味します。

そのようなものがあるのだろうか(アイデアとして受け取ってください):

アイデアは、条件に基づいて保護される一種の保護を備えているため、各エンティティ e は e.UniqueId プロパティに基づいて独自のロックを持ちます。

何か案が?

0 投票する
2 に答える
2729 参照

c++ - スレッドセーフなシングルトンを作成するときのクリティカル セクションの初期化 (C++)

このソリューションで提案されているのと同じことをしようとしています:

Windows でスレッドセーフなシングルトン パターンを作成するにはどうすればよいですか?

しかし、クリティカル セクションはどこで初期化および非初期化する必要があるのでしょうか。

0 投票する
1 に答える
813 参照

operating-system - クリティカル セクションの問題

上記のコードが進行状況と限界待機の要件を満たしているかどうかを証明するために、誰かがコンテキスト スイッチを使用したシナリオを教えてくれませんか。

そして、コードが進行状況または制限された待機の要件を満たしているかどうかを検出する方法についてのヒントを教えてください (おそらく飢餓、デッドロック、アフターユーを含む)

0 投票する
3 に答える
2262 参照

delphi - このコンソールアプリケーションでスレッドがシリアルに実行されるのはなぜですか?

タスクを実行するために複数のスレッドを実行する必要があるコンソールアプリケーションを作成しています。私の問題は、スレッドがすべて同時に実行されるのではなく、次々に実行されていることです(thread1 start-> work-> end and ONLY then start thread2)。また、10を超えるスレッドを同時に動作させたくありません(パフォーマンスの問題)。以下は、コンソールアプリケーションと使用されるデータモジュールのサンプルコードです。私のアプリケーションも同じように動作しています。スレッドが終了した後、データベースにそれらの情報を入力する必要があるため、データモジュールを使用しました。また、コードには、何かをする理由を説明するためのコメントがあります。

アプリコンソールコード:

およびデータモジュールコード

だから、私が言ったように、問題は私のスレッドがすべて同時に動作するのではなく、次々に実行されていることです。また、最初のスレッドだけが機能することもあり、その後は残りのすべてが作成されて終了することもあります。私のアプリケーションでは、すべてのコードはtry-exceptsによって保護されていますが、エラーは発生しません。

誰かが私にアドバイスをくれますか?

0 投票する
1 に答える
603 参照

visual-c++ - 任意の方法を使用してスレッド同期をコーディングする方法 - 例: ..Cevent

こんにちは、私は単一のスレッドを使用してシリアルポートから読み取り、同じシリアルポートに書き込むのに役立つ簡単なアプリケーションをコーディングしようとしています...誰かがスレッド間の同期を管理するのを手伝ってくれませんか.ソース コード - Visual Studio 6 のプロジェクト ファイル全体 - http://rapidshare.com/files/406340281/SerialPortTest.rar

ありがとう

さよね

0 投票する
2 に答える
474 参照

windows - クリティカルセクションを削除しないことによる影響はありますか?

いくつかの静的クリティカルセクションを使用し、DeleteCriticalSectionを呼び出さず、それらをプロセス出口に残してクリーンアップするネイティブコードの大部分を改良しています。

リークはなく、CSの総数が高くなりすぎる心配もありません。クリーンアップしないことで、Windowsに長期的な影響があるのではないかと思っています。エンドユーザーがそのようなことをする可能性は低いですが、1日に何千回もプログラムを起動する回帰テストスイートがあります。

展開されるマシンの範囲が広いため、Windows XPも考慮する必要があり、このネイティブコードは管理対象アプリケーションから実行されます。

0 投票する
1 に答える
5393 参照

multithreading - クリティカルセクションをSRWロックに置き換えます

アプリケーションがWindowsVista以降を対象としている場合、すべてのクリティカルセクションSRWロックに置き換えることができますか?クリティカルセクションは相互に排他的であるため、使用法では、排他モードのSRWロックと同等です。MSDNによると、SRWは速度とスペースの両方で最適化されています。これを行うことの欠点はありますか?CSとSRWがMicrosoftによって内部的にどのように実装されているかはわかりません。

ありがとう!

0 投票する
1 に答える
820 参照

c++ - C ++でのクリティカルセクションロッカーの機能範囲は何ですか?

上記はからのwxutil.hものですが、別のプロセスのアクセスをロックしますか、それとも同じプロセス内の別のスレッドをロックするだけですか?