في انتظار عملية مع مهلة في.
على نفس المنوال من آخر مشاركة، قد نرغب في أن نكون أكثر ذكاء حول إطلاق عملية وانتظار خروجها.
خاصة إذا كانت هذه العملية جزءا من نظام حاسم مثل عملية البناء الخاص بك، كنت لا تريد عملية معلقة لتكون قادرة على التسبب بكامل نظام البناء لوقف القتلى في انها المسارات.
لحسن الحظ، عملية لديها زيادة في الوزن من ويتفوريكسيت الذي يأخذ مهلة عدد صحيح، وإرجاع منطقية - صحيح إذا كانت العملية خرجت، أو خطأ إذا لم العملية.
باستخدام هذه الوظيفة، يمكننا كتابة طريقة مثل هذا:
في هذا المقتطف، أوتباتداتاريسيفد هو الحدث الذي ينطلق عندما عملية يكتب البيانات إلى الإخراج القياسية، وإشارات بيجينأوتوبترادلين إلى أننا قد أعدنا الحدث ونحن على استعداد لبدء الاستماع لإخراج العملية.
استخدام نموذج الحدث في هذه الحالة يعني أننا لسنا بحاجة إلى أن يكون النص الناتج عملية كاملة في الذاكرة في أي نقطة واحدة في الوقت المناسب. كما يكتب عملية خط من النص، سيكون لدينا فقط هذا الخط في الذاكرة، وسوف تحصل جمع القمامة بعد أن نقوم بتحديث العداد لدينا.
هناك اثنين "غوتشا" في هذا المقتطف، على الرغم من.
الأول هو process. Kill (). هذا هو حالة السباق الكلاسيكي - بين الوقت يعود عملية لدينا من process. WaitForExit () ويستدعاء process. Kill ()، يمكن أن عملية الهدف الخروج. في هذه الحالة، تنص مسن أنه إذا استدعاء. Kill () على العملية التي خرجت بالفعل، سوف تحصل على إنفاليدوبيراتيونكسيبتيون.
يمكننا إصلاح هذا من خلال التعامل مع الاستثناء، مثل ذلك:
و "غوتشا" الثاني هو دقيق جدا، وربما كنت لن تجد ذلك حتى وظيفة لا يعود النتيجة التي تتوقعها، أو حتى تجلس وقراءة صفحة الوثائق بأكملها ل Process. WaitForExit (إنت). وتذكر شبكة مدسن أنه:
عند إعادة توجيه الإخراج القياسي إلى معالجات أحداث غير متزامنة، فمن الممكن أن معالجة الإخراج لم تكتمل عند إرجاع هذه الطريقة. لضمان اكتمال معالجة الحدث غير المتزامن استدعاء الزائد ويتفوريكسيت () الذي لا يأخذ أي معلمة بعد تلقي صحيح من هذا التحميل الزائد.
في هذه الحالة، فمن الممكن لوظيفتنا جيتنوموتبوتشارز لإرجاع قيمة تحتوي على أحرف أقل من إخراج العملية الفعلية، ما لم نسميه ويتفوريكسيت () مرة أخرى.
ومع أخذ ذلك في الاعتبار، تبدو وظيفتنا الآمنة النهائية الآن كما يلي:
عملية ويتفوريكسيت قتل
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
هل process. kill () إنهاء ويتفوريكسيت () (مع عدم وجود حد زمني)
لدي عملية التي تعمل في الخلفية ولها ويتفوريكسيت ()، لأن المدة قد تختلف وأنا بحاجة إلى الانتظار حتى ينتهي. في بعض المناسبات، وأنا بحاجة لإنهاء ذلك قبل أن يكمل وأطلق. Kill () القيادة عبر حدث الطبقة. تتغير الخاصية. HasExited إلى صحيح ولكن التعليمات البرمجية لا يحصل على تمرير خط ويتفوريكسيت ().
عمليتي تطلق عميل نقل ملف جافا يستند ويقوم بعملية نقل. تظهر العملية في مدير المهام و كيل () لا تنتهي. وبما أنني لا أهتم حقا بإنهاء العملية، بل تحتاج برنامجي للذهاب إلى "المهمة" التالية، وأضاف كلوز () مباشرة بعد كيل ()، الذي يطلق ويتفوريكسيت ويتيح رمز بلدي "التحرك". وإنهاء العملية في وقت مبكر سيكون احتمال نادر في بلدي التطبيق، ولكن ما زلت في حاجة إليها للعمل، لذلك هذا التنفيذ سوف تضطر إلى القيام به.
ويتفوريكسيت هو مكالمة مباشرة إلى نظام التشغيل إلى الانتظار ليصبح مؤشر العملية. عند انتهاء العملية، سوف يكتمل ويتفوريكسيت. قتل هو دعوة مباشرة إلى تيرمينجبروسيس وهو قتل مع أي أسئلة طرحت. إذا استخدمت بشكل صحيح سيعود ويتفوريكسيت بعد اكتمال قتل.
لذلك هناك بعض الأخطاء الأخرى في التعليمات البرمجية الخاصة بك. إنشاء نسخة أبسط وسترى قضية تختفي. يتم إخفاء الخلل في تعقيد التعليمات البرمجية الخاصة بك.
أو، ويتفوريكسيت لم يعود ولكن لم تلاحظ. أو، لم يتم تنفيذ القتل أبدا أو فشل. ومرة أخرى، سيؤدي تبسيط الشفرة إلى الكشف عن هذه المسألة. يمكنك إحضارها إلى 5 خط النسخ؟ أشك في أنك تستطيع، ولكن سوف ننظر مرة أخرى إذا كنت تفعل.
في التعليقات التي حددتها أن قتل بينغ لا يعمل، ولكن قتل العملية الخاصة بك لا. والسبب في ذلك عادة هو إو غير قابلة للإلغاء. نواة ويندوز تبقي العمليات في جميع أنحاء حتى يتم إو جميع. والخبر السار هو أن العملية ستموت في نهاية المطاف ولن يتم تشغيل أي كود بعد أن عاد كيل. الأخبار السيئة هي أن تنظيف الموارد لم يكتمل تماما.
قتل عملية؟
أنا باستخدام كائن باكغروندوركر لبدء عملية ما يلي داخل بلدي backgroundWorker. DoWork الحدث:
السبب الرئيسي الذي احتاجه لقتل العملية هو حذف الملفات المؤقتة المستخدمة بواسطة العملية التي لا يمكن حذفها أثناء تشغيل العملية.
عندما التصحيح لقد اكتشفت أن process. Kill () لا يبدو أن تفعل أي شيء. السطر التالي process. WaitForExit () ينتظر فقط حتى عملية تشغيل الإجراءات العادية.
لأغراض بلدي لتنظيف الموارد، يبدو بلدي رمز للعمل بشكل جيد. ولكن من الناحية المثالية أريد أن تكون قادرة على السيطرة على عمر العملية. هل يمكن أن يكون لهذا الإجراء علاقة مع أذونات المشرف؟ أيه أفكار؟
هل تحتوي العملية التي تقوم بتشغيلها على نافذة (أو مضخة رسالة؟). إذا كان ذلك، استخدم. CloseMainWindow () بدلا من. Kill ()..Kill يجب إنهاء العملية ولكن أعتقد أنه يتطلب المشرف الادعاءات، في حين لا أعتقد كلوتمينويندو () يتطلب ذلك.
هناك فرق واضح بين اثنين - قتل () على الفور إنهاء العملية ولا يفعل أي تنظيف على الإطلاق (لن يتم إغلاق مقابض الملفات المفتوحة، وما إلى ذلك) مماثلة لقتل عملية في إدارة المهام، في حين كلوسمينويندو () يرسل طلبا إلى برنامج رسالة لإغلاق. على افتراض عدم وجود معالج الحدث on_close في عملية لمنعه من إغلاق (كما هو الحال في كلمة عندما يسألك إذا كنت تريد حفظ) ثم يجب إغلاقه بإحكام.
هل تحتوي العملية التي تقوم بتشغيلها على نافذة (أو مضخة رسالة؟). إذا كان ذلك، استخدم. CloseMainWindow () بدلا من. Kill ()..Kill يجب إنهاء العملية ولكن أعتقد أنه يتطلب المشرف الادعاءات، في حين لا أعتقد كلوتمينويندو () يتطلب ذلك.
هناك فرق واضح بين اثنين - قتل () على الفور إنهاء العملية ولا يفعل أي تنظيف على الإطلاق (لن يتم إغلاق مقابض الملفات المفتوحة، وما إلى ذلك) مماثلة لقتل عملية في إدارة المهام، في حين كلوسمينويندو () يرسل طلبا إلى برنامج رسالة لإغلاق. على افتراض عدم وجود معالج الحدث on_close في عملية لمنعه من إغلاق (كما هو الحال في كلمة عندما يسألك إذا كنت تريد حفظ) ثم يجب إغلاقه بإحكام.
العملية ليس لديها نافذة أو أي نوع من واجهة. لقد حاولت بالفعل استخدام كلوسمينويندو () بدلا من قتل () وأحصل على نفس النتيجة. ولا تقتل العملية.
جرب تشغيله كمسؤول واسمحوا لي أن أعرف ما يحدث.
جرب تشغيله كمسؤول واسمحوا لي أن أعرف ما يحدث.
أنا أحسب ما هي المشكلة، ولكن لا تزال بحاجة إلى حل.
عملية إنشاء مثيل آخر من نفسه (لذلك هناك 2 مثيلات العملية قيد التشغيل). عندما استدعاء process. Kill ()، واحد منهم يقتل، واحد منهم لا يزال قيد التشغيل، مما تسبب في process. WaitForExit () الانتظار.
الحل الوحيد الذي يمكن أن نفكر فيه هو البحث في جميع العمليات الجارية بالاسم وقتلها بهذه الطريقة .. الذي لا يبدو مثاليا.
يجب أن يكون وسيلة أخرى، وخاصة بالنظر إلى حقيقة أن جميع حالات العملية قتلوا عندما يخرج الطلب الخاص بي.
يمكنك الحصول على كل بيد التي تم إنشاؤها بواسطة عملية الأصل باستخدام كائنات إدارة ويندوز (باستخدام التكرار):
يمكنك الحصول على معرف بروك الأصل مع عضو process. ID. إعطائها دوامة واسمحوا لي أن أعرف إذا كان يعمل. هذا هو فعال كيف "قتل شجرة عملية" يعمل في تاسماناجر.
تم تعديلها 5 يارس أغو من سكاتاماتيك: n / a.
يمكنك الحصول على كل بيد التي تم إنشاؤها بواسطة عملية الأصل باستخدام كائنات إدارة ويندوز (باستخدام التكرار):
يمكنك الحصول على معرف بروك الأصل مع عضو process. ID. إعطائها دوامة واسمحوا لي أن أعرف إذا كان يعمل. هذا هو فعال كيف "قتل شجرة عملية" يعمل في تاسماناجر.
عملت تماما. شكرا جزيلا.
كان لي مشكلة مماثلة مع إنتيروبس وكان لإجبار غ.
تعذر الحصول على عنوان العملية؟ - 5 ردود c ++ - 1 رد مساعدة مع نص برل الذي يولد الكثير من العمليات الطفل - 3 ردود كيف يمكنني التفريق بين عملية موجودة مسبقا واحدة بدأت - 7 ردود الفرق بين القيادة 4 ردود التطبيق لا يزال في العملية حتى بعد الخروج يتم النقر على زر - 3 ردود كيفية قتل عملية الطفل تحطمت على ويندوز - 2 ردود مشاكل الأنابيب في C - 9 ردود غير قادر على نسخ ملف & كوت؛ أوبج \ ريليس & كوت؛ إلى & كوت؛ بن \ ريليس & كوت ؛. عملية لا يمكن الوصول إلى فيل - 4 ردود تقتل عملية - 5 ردود تحتاج إلى مساعدة مع بلدي قذيفة - 7 ردود قتل عملية في الثعبان - 9 ردود [بيثون] كيفية قتل عملية محددة أطلقتها subprocess. Popen - 14 ردود كيف يمكن أنا قتل عملية محددة؟ - 10 ردود مشكلة C ++ في لينوكس - 33 الردود مشكلة مع C في لينكس - 6 ردود عملية القاتل - 11 ردود ليت مشكلة - 3 ردود كلينت-سيرفر بروجيكت - 1 رد كيفية إغلاق بشكل صحيح تشغيل ويندوز عملية النموذج من خدمة [C #] - 3 ردود.
يبدأ الشخص باسم & كوت؛ القيم & كوت؛ ويقف في نهاية حقل. كل شخص آخر يلعب المدرجات في الطرف البعيد (المسافة تعتمد على منطقة اللعب المحدد). ال .
أنا أعمل حاليا على برنامج لتتبع ميل لبلدي تقرير المصروفات الشهرية للعمل. كل شيء يعمل عظيم، ولكن لا أستطيع أن أعيش لحياة.
أنا أحاول أن نفهم سينكرونيزماب وأنا ركض رمز أدناه. أحصل على الإخراج أدناه مع استثناء. وفقا لفهمي يحدث الاستثناء عندما.
System. Diagnostics. Process لا يسمح & كوت؛ الانتظار وقتل & كوت؛ بدون سباق # 7343.
ديمتري-مي علق في 30 مارس، 2018.
افترض لدي System. Diagnostics. Process ملزمة لبعض عملية قيد التشغيل. أريد الانتظار حتى خروج هذه العملية وإذا فشل في الخروج في خمس ثوان أريد إنهاء هذه العملية. وإليك قطعة من الكود:
المشكلة هي العملية قد الخروج بين ويتفوريكسيت () و كيل () ثم يحصل هذا الرمز استثناء عام بدلا من ذلك. لا توجد طريقة لكتابة التعليمات البرمجية أعلاه بحيث لا يوجد احتمال لظروف السباق بين العملية الأخرى الخروج وهذه العملية اتخاذ قرار ما إذا كان لإنهاء العملية الأخرى أم لا.
نفس المشكلة على سطح المكتب.
هناك ثلاث طرق لكيفية حل هذه المشكلة.
الأول هو أن كيل () لا يفعل شيئا إذا خرجت العملية. وهذا من شأنه أن ينتهك العقد المنصوص عليه في الوثائق ولكنه في الواقع الشيء الصحيح الذي يجب القيام به. الغرض من كيل () هو "التخلص من العملية" وإذا حدث ذلك العملية قد خرجت - حسنا، لا شيء للقيام به. لا أستطيع أن أتخيل حالة معقولة حيث شخص ما ستدعو عمياء كيل () ومن ثم قبض على استثناء ممكن واتخاذ أي قرارات بشأن ما يجب القيام به على أساس ما إذا كان هناك استثناء.
والثاني هو أن يتم إضافة معلمة مع القيمة الافتراضية إلى كيل () - بحيث يتحول إلى قتل (بول رمويفكسيتد = ترو). هذا يمنع انتهاك العقد الحالي ولكن بصراحة انها غبية.
والثالث هو صياغة بعض الاستثناءات الخاصة بالضبط لهذه الحالة - بحيث يمكن للمتصل كشف موثوق أن العملية قد خرجت عن طريق برمجيا فحص الاستثناء. وهذا من شأنه كسر العقد وانها غبية أيضا.
فيكتور-سفوب علق 30 يوليو، 2018.
مرحبا! فقط 2C بلدي - هو رمي استثناء معين المستمدة من إنفاليدوبيراتيونكسيبتيون لا يزال خرق العقد؟ أنا لن أعتبرها واحدة، كما أن أي معالجين القائمة سوف لا يزال قبض عليه وتقنيا هو - مثيل من نفس الفئة، أليس كذلك؟
أما بالنسبة للبديل الآخر - يتم فرض التخلف عن المتصل، وجعلها جزءا من العقد والمسؤولية.
أنا أفضل أن يوصي بول تريكيل () أو بول كيليفيكسيستس () بديل غير رمي.
ديمتري-مي علق 1 أغسطس، 2018.
@ فيكتور-سفوب رمي استثناء مشتق يمكن أن يصبح خرقا إذا كان المتصل يقارن نوع الاستثناء من أجل المساواة. دونو كيف معقولة سيكون، ربما هناك بعض السيناريوهات حيث المنطقي. على أي حال عندما وثائقك يقول رمز يلقي سوميكسيبتيون و رمي في الواقع سومدريفدكسيبتيون أن رسميا هو خرق العقد.
فيكتور-سفوب علق 1 أغسطس، 2018.
@ ديمتري-مي: الحق أنت، وهذا منطقي. ثم طريقة بديلة مع اسم ذات مغزى هو على الارجح أفضل بديل المتبقية؟ إضافة وسيطة لقتل () سيكون وقت التشغيل التبعية كسر، كما الافتراضي هي مجرد السكر النحوي.
ديمتري-مي علق 1 أغسطس، 2018 & # 8226؛
@ فيكتور-سفوب ياب، أعتقد كيليفكسيستس () أو ربما كيليفنوتكسيتد () سيكون على ما يرام.
وعلق Priya91 7 ديسمبر 2018.
لا يعمل؟ الاستثناء الذي ألقيت في حالة الخروج من العملية هو إنفاليدوبيراتيونكسيبتيون كما هو موثق.
ديمتري-مي علق ديك 7، 2018.
@ Priya91 هو نوع من الأعمال ولكن.
هذا لا يبدو وكأنه أبي واضح - عليك أن تتوقع سباق للحصول على دوافع لكتابة هذه التعليمات البرمجية استثناء يقدم النفقات العامة لأي سبب وجيه استثناء يمكن أن تؤدي إلى نقطة توقف عند تشغيل تحت المصحح لأي سبب وجيه.
وعلق Priya91 7 ديسمبر 2018.
استثناء يقدم النفقات العامة دون سبب وجيه.
استثناء يمكن أن تؤدي إلى نقطة توقف عند تشغيل تحت المصحح لأي سبب وجيه.
هذا التبرير ينطبق على جميع الاستثناءات التي يتم القبض عليها وليس لها أي تعبير، لا يعني أنها ليست مفيدة في سيناريوهات أخرى.
يعد تعديل واجهة برمجة التطبيقات الحالية خيارا لأسباب التوافق، ولا يفهم السبب في تقديم واجهة برمجة تطبيقات جديدة. إذا كنت يمكن أن تأتي مع بعض البيانات حول لماذا التعامل مع استثناء سيئة للسيناريو الخاص بك مع بعض أرقام العطاء أو سيناريوهات الاستخدام الأخرى، ثم الرجاء تحديث أول تعليق المسألة مع سبيسلات أبي مثل هنا.
ديمتري-مي علق ديك 8، 2018.
@ Priya91 نعم، وفي معظم الأحيان وجود استثناء الذي يتم التعامل مع عدم وجود هو عديمة الفائدة فقط. كل ما تحصل عليه هو نقطة توقف في المصحح الذي لا يمكنك أن تفعل أي شيء مفيد مع أي حال. ولكن هذا الجزء هو طفيفة. الجزء الرئيسي هو عليك أن تكون أولا على بينة من السباق المحتمل، ومن ثم صياغة هذا الحل بدلا من استخدام طريقة "التخلص من هذه العملية". يعرض أبي الحالي تصميم، فإنه ليس من الصعب تغييره دون كسر التوافق.
وعلق Priya91 9 ديسمبر 2018.
@ ديمتري-مي إذا كان لدينا أبي جديد يقول بول تريكيل ()، الذي يعود صحيح إذا تم قتل العملية مع إشارة قتل وكاذبة إن لم يكن. كيف يمكنك أن تعرف عندما أبي يعود كاذبة، وقتل لم يحدث بسبب بعض خطأ نظام التشغيل، أو محاولة لقتل عملية عن بعد أو إذا خرجت العملية من قبل نفسها قبل قتل؟ إذا حصلت على كاذبة، فأنت غير متأكد ما إذا كانت العملية على قيد الحياة (في حالة أول أسباب 2) أم لا (العملية خرجت من تلقاء نفسها). وهذا هو، حالة تشغيل العملية غير معروف في حالة كاذبة من تريكيل، وهذا لا يضيف أي قيمة على قتل مما يدل بوضوح إذا قتلت العملية أم لا.
ديمتري-مي علق 12 ديسمبر، 2018.
@ Priya91 من الواضح أن مثل هذه تريكيل () ليست ذات فائدة كبيرة. يجب أن يكون كيلفستيلرونينغ () الذي يمكن أن يعود الفراغ ويقتل فقط عملية بغض النظر عما إذا خرجت أم لا، ورمي استثناء إذا كان لا يمكن أن تقتل العملية. قد يعود أيضا بول للإشارة إلى ما إذا كانت العملية قد خرجت من نفسها ولكن لا أرى الكثير من الاستخدام في ذلك.
وعلق Priya91 12 ديسمبر 2018.
@ ديمتري-مي أنا أسيء فهم الاقتراح، يمكنك تحديث تعليق المسألة مع سبيسليت أبي، ش يمكن استخدام المثال من هنا. يجب على سبيليت أن تحدد بوضوح غرض أبي من خلال سيناريوهات الاستخدام، والسلوك. وبمجرد أن يكون لدينا الاقتراح يمكننا دفع هذا من خلال مراجعة أبي.
jnm2 علق 27 ديسمبر، 2018.
على مشهد الاستثناء المشتقة، أنا لست مقتنعا أنه يكسر أي وقت مضى عقد لرمي استثناء أكثر المستمدة أي أكثر من أنه يكسر عقد للعودة قيمة أكثر مشتقة. إذا تم تنفيذ العقد بعد لسب، فإنه لن يهم.
التأمل، سواء كانت تنطوي على أنواع مثيلات محددة أو أعضاء، من المرجح دائما أن كسر إذا استخدمت بشكل غير صحيح.
&نسخ؛ 2018 جيثب، Inc. شروط الخصوصية تعليمات حالة الأمان.
لا يمكنك تنفيذ هذا الإجراء في الوقت الحالي.
لقد سجلت الدخول باستخدام علامة تبويب أو نافذة أخرى. أعد التحميل لتحديث الجلسة. لقد سجلت الخروج في علامة تبويب أو نافذة أخرى. أعد التحميل لتحديث الجلسة.
معالجة . طريقة ويتفوريكسيت ()
تحتوي الوثائق المرجعية أبي على منزل جديد. انتقل إلى متصفح أبي على docs. microsoft للاطلاع على التجربة الجديدة.
لإرشاد مكون العملية بالانتظار إلى أجل غير مسمى للخروج من العملية المقترنة.
الجمعية: النظام (في System. dll)
تعذر الوصول إلى إعداد الانتظار.
لم يتم تعيين معرف العملية، ولا يمكن تحديد التعامل الذي يمكن تحديد الخاصية إد.
لا توجد عملية مقترنة كائن العملية هذه.
أنت تحاول الاتصال ويتفوريكسيت () لعملية قيد التشغيل على كمبيوتر بعيد. تتوفر هذه الطريقة فقط للعمليات التي يتم تشغيلها على الكمبيوتر المحلي.
ويتفوريكسيت () يجعل الانتظار مؤشر الترابط الحالي حتى ينتهي العملية المقترنة. وينبغي أن يسمى بعد أن يتم استدعاء جميع الطرق الأخرى على العملية. لتجنب حظر مؤشر الترابط الحالي، استخدم الحدث الذي تم الخروج منه.
تقوم هذه الطريقة بإرشاد مكون العملية إلى الانتظار لوقت غير محدود من الوقت للخروج من العملية ومعالجات الأحداث. قد يؤدي هذا إلى توقف التطبيق عن الاستجابة. على سبيل المثال، إذا قمت باستدعاء كلوسمينويندو لعملية تحتوي على واجهة مستخدم، قد لا يتم التعامل مع الطلب إلى نظام التشغيل إنهاء العملية المقترنة إذا تمت كتابة العملية عدم إدخال حلقة الرسائل.
في الإطار 3.5 والإصدارات السابقة، انتظر التحميل الزائد ويتفوريكسيت () ل ماكسفالو ميلي ثانية (حوالي 24 يوما)، وليس إلى أجل غير مسمى. أيضا، الإصدارات السابقة لم تنتظر معالجات الحدث للخروج إذا تم الوصول إلى الوقت ماكسفالو الكامل.
يضمن هذا التحميل الزائد أن جميع عمليات المعالجة قد اكتملت، بما في ذلك التعامل مع الأحداث غير المتزامنة للإخراج القياسي المعاد توجيهه. يجب استخدام هذا التحميل الزائد بعد إجراء مكالمة إلى التحميل الزائد ويتفوريكسيت (Int32) عند إعادة توجيه الإخراج القياسي إلى معالجات الأحداث غير المتزامنة.
عند إنهاء عملية مقترنة (أي عندما يتم إيقاف تشغيله بواسطة نظام التشغيل من خلال إنهاء عادي أو غير طبيعي)، يقوم النظام بتخزين المعلومات الإدارية حول العملية والعودة إلى المكون الذي كان يسمى ويتفوريكسيت (). يمكن لمكون العملية ثم الوصول إلى المعلومات، والتي تتضمن إكسيتيمي، باستخدام مقبض إلى العملية خرجت.
لأن العملية المرتبطة قد خرجت، الخاصية مقبض المكون لم يعد يشير إلى مورد عملية موجود. بدلا من ذلك، يمكن استخدام المقبض فقط للوصول إلى معلومات نظام التشغيل حول مورد العملية. النظام على بينة من مقابض للخروج من العمليات التي لم يتم إصدارها من قبل مكونات العملية، لذلك فإنه يحتفظ إكسيتيمي والتعامل مع المعلومات في الذاكرة حتى يقوم مكون العملية بتحرير الموارد على وجه التحديد. لهذا السبب، في أي وقت استدعاء بدء تشغيل مثيل عملية استدعاء إغلاق عند انتهاء العملية المقترنة ولم تعد بحاجة إلى أية معلومات إدارية حول هذا الموضوع. إغلاق يحرر الذاكرة المخصصة لعملية خرجت.
راجع قسم الملاحظات من صفحة مرجع الخاصية ستانداردرور.
للحصول على الثقة الكاملة للمتصل الفوري. لا يمكن استخدام هذا العضو من خلال شفرة موثوق بها جزئيا.
Comments
Post a Comment