请让我知道下面的方法是否是线程安全的。请考虑在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}
}
`
答案 0 :(得分:3)
您提供的代码都不会在不同的线程之间共享数据,因此您应该很好,假设您没有发布的相关代码中没有线程安全问题,其中包括Test()
,Test.SendData
和Test.sendMyInfo
。
另一方面,您是否也考虑过将数据发送到的流程?如果您有两个线程同时发送数据,或者您的收件人是否正确处理数据会导致问题吗?
答案 1 :(得分:0)
如果Test.SendData和Test.sendMyInfo方法是线程安全的,那么您呈现的代码本身就是线程安全的。否则没有!