मेरे मल्टीथ्रेडिंग एप्लिकेशन में मैं कुछ चर का उपयोग कर रहा हूं जिसे एक ही समय में कई उदाहरणों में बदला जा सकता है। यह अजीब है लेकिन उसने बिना किसी समस्या के ठीक काम किया है .. लेकिन निश्चित रूप से मुझे इसे थ्रेड-सुरक्षित बनाना होगा। मैं सिर्फ ताले से शुरुआत कर रहा हूं इसलिए मैं आपकी सलाह को अपमानित करूंगा:गुणों में लॉक, अच्छा दृष्टिकोण?
जब क्लाइंट कनेक्ट होता है, क्लास क्लाइंट बनाया जाता है जहां प्रत्येक क्लाइंट का अपना "ए" चर होता है। अब उस के साथ जब तक
Client selectedClient SelectOtherClientClassByID(sentID);
selectedClient.A=5;
कोई समस्या नहीं है, तब भी जब 5 कक्षाएं एक ही समय (ThreadPool) कर रहे थे, लेकिन मैं एक गुणों के ताले जोड़ने के बारे में क्या सोच रहा था:
कभी कभी, ग्राहक ऐसे ही प्रणाली को बुलाती है ?
तरह:
A {
get { return mA; }
set {
// use lock here for settting A to some value
}
}
यह ठीक होगा?
धन्यवाद ... पढ़ने के लिए बीटीडब्ल्यू इसकी वजह यह अन्य वर्ग द्वारा पढ़ने के दौरान बदल सकती है? – Petr
इस पर लॉक करना एक अच्छा विचार नहीं है, क्योंकि यह प्रकार के बाहर से सुलभ है। –
यह सेटिंग के दौरान बदल सकता है। लॉक बाधा के रूप में कार्य करता है, जब तक कि लॉक मालिक लॉक जारी नहीं करता तब तक किसी भी अन्य क्रिया को रोकता है। –