سؤال

أنا أكتب برنامجًا من شأنه أن ينشئ مستخدمين بكميات كبيرة ، ولدي عملية جزء من الإنشاء الذي يمثل كتلًا لمدة 5 ثوانٍ تقريبًا ، للالتفاف على هذا ، كنت سأجعله متورطًا وأجلس كل شيء في تجمع الخيوط.

سؤالي هو إذا قمت بإنشاء المبدأ خارج الموضوع وقمت بنقل مبدأ المجموعة إلى الموضوع والاتصال group.Members.Add(u) و group.Save() هل يمكنني أن أواجه مشكلة؟ هل سيكون من الأفضل إنشاء مدير مجموعة جديد من داخل كل موضوع؟

هل كانت مفيدة؟

المحلول

من عند MSDN:

أي أعضاء ثابتين (مشتركين في Visual Basic) من هذا النوع آمن. لا يضمن أي أعضاء مثيل أن يكون مؤشرًا آمنًا.

هذه الملاحظة الصغيرة شائعة جدًا في الوثائق. الأمر متروك لك للمبرمج لتحديد ما تعنيه بـ "Thread Safe" وكيفية التحكم في الوصول المتزامن.

نصائح أخرى

في أي وقت يتصرف خيوطان على نفس مثيل المجموعة ، فأنت لست آمنًا. إذا كنت تستخدم فقط مؤشر ترابط خلفية واحد حتى لا يحظر واجهة المستخدم ، فقم بإنشاء المجموعة في مؤشر ترابط الخلفية واستخدمها هناك حصريًا. إذا كانت خطتك تتمثل في تسريع إضافة المستخدمين إلى مجموعة عن طريق تفريغ عدة مؤشرات ترابط لضرب Active Directory في نفس الوقت ، فأنا أظن أن هذا لن يساعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top