다음 코드가 안전합니까? 여러 스레드가 속성에 액세스하고 있지만 특정 개체에 쓰지는 않습니다. 새 오브젝트가 작성되고 지정됩니다. 다중 스레드 CreateXmlDoc
및 ReadXmlDoc
잠금 속성 가져 오기/설정
public class DataHolder
{
public XmlDocument XmlDoc {get; set;}
}
public class AccessClass
{
DataHolder dataHolderInstance;
public AccessClass(DataHolder _dataHolder)
{
dataHolderInstance = _dataHolder;
}
private void CreateXmlDoc()
{
XmlDocument _xmlDoc = new XmlDocument();
dataHolderInstance.XmlDoc = _xmlDoc;
}
private void ReadXmlDoc()
{
XmlNodeList elemList = dataHolderInstance.XmlDoc.GetElementsByTagName("title");
}
}
데이터 홀더 인스턴스가 액세스 클래스에서 초기화되는 위치는 어디입니까? 액세스 클래스간에 공유됩니까? – Rup
문구를 다시 작성하십시오. 여러 스레드가'CreateXmlDoc'을 호출합니까? 그렇다면 no이면 스레드로부터 안전하지 않습니다. –
@SimonWhitehead 예 복수의 스레드가'CreateXmlDoc'를 호출합니다 – swiftcode