0

以下の方法がスレッドセーフかどうか教えてください。サイドTimers.timerティックイベント(マルチスレッド環境)で呼び出されるこのメソッドを検討してください。

public void GetMyInfo()
{

    Test t= new Test();
    string result= t.SendData();

    if (result != "0")
    {
        MyInfo _omy = new MyInfo();
        _omy.name="abc";
        _omy.age="23";
        t.sendMyInfo(_omy)
    }
}

class MyInfo
{
string name{get;set;}
string age {get;set}
}

`

4

2 に答える 2

3

あなたが提示したコードはいずれも、異なるスレッド間でデータを共有しないため、投稿しなかった関連コードにスレッド セーフの問題がないと仮定するTest()、良いはずです。Test.SendDataTest.sendMyInfo

一方で、データを送信するプロセスについても考慮しましたか? 2 つのスレッドが同時にデータを送信すると問題が発生しますか?それとも、受信者はそれを適切に処理しますか?

于 2013-05-31T14:00:14.967 に答える
0

Test.SendData および Test.sendMyInfo メソッドがスレッドセーフである場合、提示しているコード自体がスレッドセーフになります。そうでなければいいえ!

于 2013-05-31T14:00:00.223 に答える