タグ付けされた質問 「locking」

ロックにより、さまざまなタイプのリソースを一度に1つのプロセスだけが使用できるようになります。

2
UPDLOCK、HOLDLOCKについて混乱している
テーブルヒントの使用法を調査しているときに、次の2つの質問に遭遇しました。 どのロックヒントを使用する必要がありますか(T-SQL)? HOLDLOCKはUPDLOCKにどのような影響を及ぼしますか? 両方の質問への回答は、を使用すると(UPDLOCK, HOLDLOCK)、他のプロセスがそのテーブルのデータを読み取ることができないと言っていますが、私はこれを見ませんでした。テストするために、テーブルを作成し、2つのSSMSウィンドウを起動しました。最初のウィンドウから、さまざまなテーブルヒントを使用してテーブルから選択したトランザクションを実行しました。トランザクションの実行中に、2番目のウィンドウからさまざまなステートメントを実行して、どれがブロックされるかを確認しました。 テストテーブル: CREATE TABLE [dbo].[Test]( [ID] [int] IDENTITY(1,1) NOT NULL, [Value] [nvarchar](50) NULL, CONSTRAINT [PK_Test] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] SSMSウィンドウ1から: BEGIN TRANSACTION SELECT …

9
モニターとロック
C#でスレッドセーフのためにMonitorクラスまたはlockキーワードのいずれかを使用するのが適切なのはいつですか? 編集: これまでの回答lockから、Monitorクラスへの一連の呼び出しの省略形であるように思われます。ロックコールの略記は正確には何ですか?またはより明確に、 class LockVsMonitor { private readonly object LockObject = new object(); public void DoThreadSafeSomethingWithLock(Action action) { lock (LockObject) { action.Invoke(); } } public void DoThreadSafeSomethingWithMonitor(Action action) { // What goes here ? } } 更新 ご協力いただきありがとうございます。ご提供いただいた情報の一部をフォローアップするために、別の質問を投稿しました。あなたはこの分野に精通しているようですので、私はリンクを投稿しました:ロックされた例外をロックして管理するこのソリューションの何が問題になっていますか?

3
lock(new object())—カーゴカルトまたはクレイジーな「言語の特殊なケース」?
コンサルタントによって作成されたコードを確認しています。すでに数十の危険信号が表示されていますが、次のスニペットに頭を悩ませることはできません。 private void foo() { if (InvokeRequired) { lock (new object()) { if (m_bar!= null) Invoke(new fooDelegate(foo), new object[] { }); } } else { if(OnBazChanged != null) OnBazChanged(); } } ここでlock(new object())は何をしていますか?常に別のオブジェクトをロックしているため、何の効果もありませんが、この種のロックは、コピーして貼り付けられていない部分であっても、コード全体で持続します。これは、私が知らないものにコンパイルされたC#言語の特殊なケースですか、それともプログラマーは、たまたま機能していたカーゴカルトを採用しただけですか?

6
ロックされたオブジェクトは、その内部で例外が発生した場合、ロックされたままになりますか?
ac#スレッドアプリで、オブジェクトをロックする場合、キューとしましょう。例外が発生した場合、オブジェクトはロックされたままになりますか?疑似コードは次のとおりです。 int ii; lock(MyQueue) { MyClass LclClass = (MyClass)MyQueue.Dequeue(); try { ii = int.parse(LclClass.SomeString); } catch { MessageBox.Show("Error parsing string"); } } 私が理解しているように、catchの後のコードは実行されませんが、ロックが解放されるかどうか疑問に思っていました。


8
JavaScriptでロックを実装する方法
lockC#と同等のものをJavaScriptでどのように実装できますか? したがって、私が考えている簡単なユースケースを説明すると、次のようになります。 ユーザーがボタンをクリックしますB。 Bonclickイベントを発生させます。がイベントにある場合Bは、伝播する前にが存在するのをevent-state待ちます。場合であり、ロックされ、に設定され、その後、イベントが伝搬します。イベントの伝播が完了すると、はに設定されます。Bready-stateBready-stateBevent-stateBready-state ready-stateボタンにクラスを追加したり、ボタンからクラスを削除したりするだけで、これに近いことがどのように行われるかがわかりました。ただし、問題は、ユーザーが変数を設定するよりも速くボタンを2回続けてクリックできるため、状況によってはこのロックの試行が失敗することです。 JavaScriptで失敗しないロックを実装する方法を知っている人はいますか?

8
実行ファイルのロック:Windowsは行いますが、Linuxは行いません。どうして?
Windows(.exeまたは.dll)でファイルを実行すると、ファイルがロックされ、削除、移動、または変更できないことに気付きました。 Linuxは、他の一方で、実行ファイルをロックしていない、あなたがすることができ、削除、移動、またはそれらを変更します。 LinuxがロックしないのにWindowsがロックするのはなぜですか?ロックすることに利点はありますか?

18
Androidでホームボタンやその他のシステムボタンを無効にする方法は?
Androidアプリケーションでホームボタンやその他のシステムボタンを無効にする必要があります。 例: MX Player(Google Playを参照)-プレーヤー画面で「ロック」アイコンを押すと、すべてのハードウェアおよびソフトウェアシステムボタンがロックされます。 それはroot化なしでうまく動作します。 異なるAndroidバージョンのいくつかのデバイスでテストしました。キッズロック(プラグイン)を分解しようとしましたが、まだどのように機能するのかわかりません。 キッズロック(プラグイン)のような同じソリューションが必要ですMX Player:-ホーム、戻る、その他すべてのシステムボタンを無効にします。 助言がありますか?
80 android  locking  kiosk 

5
リストに追加するParallel.ForEach
(ネットワークによって)リモートサイトに接続し、汎用リストを返す複数の関数を実行しようとしています。しかし、私はそれらを同時に実行したいと思います。 例えば: public static List<SearchResult> Search(string title) { //Initialize a new temp list to hold all search results List<SearchResult> results = new List<SearchResult>(); //Loop all providers simultaneously Parallel.ForEach(Providers, currentProvider => { List<SearchResult> tmpResults = currentProvider.SearchTitle((title)); //Add results from current provider results.AddRange(tmpResults); }); //Return all combined results return results; } 私が見ているように、「結果」への複数の挿入が同時に発生する可能性があります...これによりアプリケーションがクラッシュする可能性があります。 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.