سؤال

لقد قمت بإنشاء خادم/عميل بسيط C# مع عرض تكرار VB6 ActiveX Exe.

يقوم العميل بإنشاء كائن Singleton المنشط خادمًا بشكل صحيح. الكائن بسيط للغاية فقط وجود خاصية واحدة - عدد. يقوم كل عميل يعمل بإنشاء الكائن ويزيد عددهم.

بسيطة - يعمل كل عملاء متعددين مع نفس كائن Simpleton ويمكن زيادة خاصية Count بواسطة كل منها.

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

أي أفكار موضع تقدير ،

شكرا مم

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

المحلول

أعتقد أنك بحاجة إلى تجاوز عمر الكائن البعيد:

public override object InitializeLifetimeService()
    {
        return null; //remote object lease time forever
    }

ضع ذلك في فصلك الذي يرث MarshalByRefObject

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