मैं एक मापन यंत्र वस्तु है सी # में ताला के लिए प्रथाओं (या दर्ज करें/बाहर निकलें):बेस्ट
public class Device
{
public Instrument MeasuringInstrument { get; set; }
public void DoMeasuring()
{
var result = this.MeasuringInstrument.Measure();
}
}
मापन यंत्र:
public class Instrument
{
public double Measure()
{
return 0;
}
}
मैं किसी उपकरण कुछ मापने के लिए जरुरी है कि है केवल एक ही समय में एक डिवाइस पर काम कर सकता है, फिर भी कई डिवाइस एक ही उपकरण का उपयोग कर सकते हैं। मैं थ्रेडिंग के लिए नया हूं, और जो मैं समझता हूं, दोनों में से दोनों समाधानों में चेतावनी है।
public class Instrument
{
public double Measure()
{
lock(this)
{
return 0;
}
}
}
public class Device
{
public Instrument MeasuringInstrument { get; set; }
public void DoMeasuring()
{
lock(this.MeasurementInstrument)
{
var result = this.MeasuringInstrument.Measure();
}
}
}
मैं इसे निजी वस्तुओं पर लॉक करने के लिए सबसे अच्छा है पढ़ा है, लेकिन मैं कैसे कि जबकि अभी भी MeasuringInstrument मिल/डिवाइस पर सेट करने के लिए अनुमति करने के लिए पता नहीं है। कोई सुझाव?
धन्यवाद ज्यादा,
केन
भावी पीढ़ियों के लिए: प्रबंधित थ्रेडिंग उत्तम आचरण http://msdn.microsoft.com/en-us/library/1c9txz50(v=vs.110).aspx – Brad