多线程环境中的线程安全方法

时间:2013-05-31 13:57:18

标签: c# multithreading object thread-safety

请让我知道下面的方法是否是线程安全的。请考虑在Timers.timer tick事件(这是一个多线程环境)中调用此方法。

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}
}

`

2 个答案:

答案 0 :(得分:3)

您提供的代码都不会在不同的线程之间共享数据,因此您应该很好,假设您没有发布的相关代码中没有线程安全问题,其中包括Test()Test.SendDataTest.sendMyInfo

另一方面,您是否也考虑过将数据发送到的流程?如果您有两个线程同时发送数据,或者您的收件人是否正确处理数据会导致问题吗?

答案 1 :(得分:0)

如果Test.SendData和Test.sendMyInfo方法是线程安全的,那么您呈现的代码本身就是线程安全的。否则没有!