C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: プロパティの排他制御


(過去ログ 131 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■77337 / inTopicNo.1)  プロパティの排他制御
  
□投稿者/ kiku (66回)-(2015/10/09(Fri) 16:47:10)

分類:[.NET 全般] 

動作環境
 VS2008
 .NETCompactFrameWork3.5
 WindowsCE6.0
 WindowsFormアプリ

質問
 下記のようにプロパティを実装した場合、
 ロック対象になるオブジェクトは何になるのでしょうか?
 プロパティを宣言しているクラスのインスタンスになるのでしょうか?
 もしそうであるならば、
 getとsetは同時に実行できないということが保障される?


        bool _break1 = false;
        public bool break1
        {
            [MethodImpl(MethodImplOptions.Synchronized)]
            get
            {
                return _break1;
            }
            [MethodImpl(MethodImplOptions.Synchronized)]
            set
            {
                _break1 = value;
            }
        }

引用返信 編集キー/
■77339 / inTopicNo.2)  Re[1]: プロパティの排他制御
□投稿者/ Hongliang (354回)-(2015/10/09(Fri) 17:42:24)
https://msdn.microsoft.com/ja-jp/library/system.runtime.compilerservices.methodimploptions.aspx
何をロックするかは明記されていますよ。
// publicな型で使うべきじゃない、とも。

// bool値の読み書きが同時に行われたところでふーんってなもんのような。
引用返信 編集キー/
■77340 / inTopicNo.3)  Re[2]: プロパティの排他制御
□投稿者/ kiku (67回)-(2015/10/09(Fri) 17:57:16)
ご回答ありがとうございます。


> https://msdn.microsoft.com/ja-jp/library/system.runtime.compilerservices.methodimploptions.aspx
> 何をロックするかは明記されていますよ。

MSDNには下記のように書かれています。
 メソッドを実行できるのは、一度に 1 つのスレッドだけです。
 静的メソッドは型をロックし、インスタンス メソッドはインスタンスをロックします。
 インスタンス関数で実行できるスレッドは 1 つだけです。
 また、クラスの静的関数で実行できるスレッドも 1 つだけです。

今回の場合、インスタンス関数に該当すると思うのですが、
このインスタンスがなんなのかわからなかったのです。
このインスタンスは、クラスのインスタンス?
それとも、メソッド単位のインスタンス?(こんなインスタンスあるのかな?)


> // publicな型で使うべきじゃない、とも。

すみません。
ここは見ていませんでした。
ご指摘ありがとうございます。


> // bool値の読み書きが同時に行われたところでふーんってなもんのような。

これは、boolはatomic(?)だから
排他制御しなくても大丈夫という意味ですか?

引用返信 編集キー/
■77342 / inTopicNo.4)  Re[3]: プロパティの排他制御
□投稿者/ Hongliang (355回)-(2015/10/09(Fri) 19:39:12)
> 今回の場合、インスタンス関数に該当すると思うのですが、
> このインスタンスがなんなのかわからなかったのです。
> このインスタンスは、クラスのインスタンス?
> それとも、メソッド単位のインスタンス?(こんなインスタンスあるのかな?)
クラスのインスタンスです。

> これは、boolはatomic(?)だから
> 排他制御しなくても大丈夫という意味ですか?
そうですね。
引用返信 編集キー/
■77343 / inTopicNo.5)  Re[4]: プロパティの排他制御
□投稿者/ kiku (68回)-(2015/10/09(Fri) 19:56:33)
ご回答ありがとうございます。

やっと理解できました。

引用返信 編集キー/
■77344 / inTopicNo.6)  Re[5]: プロパティの排他制御
□投稿者/ kiku (69回)-(2015/10/09(Fri) 19:56:58)
解決済み
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -