Monday 19 March 2018

عملية ويتفوريكسيت قتل


عملية ويتفوريكسيت قتل
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
هل من الضروري استخدام Process. WaitForExit بعد process. Kill؟
هل من الضروري استخدام Process. WaitForExit بعد process. Kill؟
ماذا لو خرجت عملية الاتصال مباشرة بعد استدعاء process. Kill؟
هل هذا سبب process. Kill أن تفشل؟
تحرير: أنا بحاجة إلى قتل عملية على الخروج طلبي. عند هذه النقطة لا أنوي التعامل مع الحالات عندما فشل القتل لذلك ليس من الضروري بالنسبة لي أن ننتظر العملية للخروج. حتى إذا كان يدعو ويتفوريكسيت ليس من الضروري أن أتمكن من تخطي ذلك.
ووفقا للوثائق المتعلقة بشبكة مسن (منجم التركيز)
ملاحظة يتم تنفيذ طريقة كيل بشكل غير متزامن. بعد استدعاء الأسلوب "اقتل"، استدعاء الأسلوب ويتفوريكسيت لانتظار العملية للخروج أو التحقق من الخاصية هاسكسيتد لتحديد ما إذا كانت العملية قد خرجت.
إذا كنت لا تحتاج إلى الانتظار، إذا كنت لا تحتاج إلى تحديد ما إذا كانت العملية موجودة فعلا، ثم افترض أنك لا تحتاج إلى الاتصال ويتفوريكسيت أو تحقق هاسكسيتد.

عملية ويتفوريكسيت قتل
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
هل process. kill () إنهاء ويتفوريكسيت () (مع عدم وجود حد زمني)
لدي عملية التي تعمل في الخلفية ولها ويتفوريكسيت ()، لأن المدة قد تختلف وأنا بحاجة إلى الانتظار حتى ينتهي. في بعض المناسبات، وأنا بحاجة لإنهاء ذلك قبل أن يكمل وأطلق. Kill () القيادة عبر حدث الطبقة. تتغير الخاصية. HasExited إلى صحيح ولكن التعليمات البرمجية لا يحصل على تمرير خط ويتفوريكسيت ().
عمليتي تطلق عميل نقل ملف جافا يستند ويقوم بعملية نقل. تظهر العملية في مدير المهام و كيل () لا تنتهي. وبما أنني لا أهتم حقا بإنهاء العملية، بل تحتاج برنامجي للذهاب إلى "المهمة" التالية، وأضاف كلوز () مباشرة بعد كيل ()، الذي يطلق ويتفوريكسيت ويتيح رمز بلدي "التحرك". وإنهاء العملية في وقت مبكر سيكون احتمال نادر في بلدي التطبيق، ولكن ما زلت في حاجة إليها للعمل، لذلك هذا التنفيذ سوف تضطر إلى القيام به.
ويتفوريكسيت هو مكالمة مباشرة إلى نظام التشغيل إلى الانتظار حتى يصبح مؤشر العملية. عند انتهاء العملية، سوف يكتمل ويتفوريكسيت. قتل هو دعوة مباشرة إلى تيرمينجبروسيس وهو قتل مع أي أسئلة طرحت. إذا استخدمت بشكل صحيح سيعود ويتفوريكسيت بعد اكتمال قتل.
لذلك هناك بعض الأخطاء الأخرى في التعليمات البرمجية الخاصة بك. إنشاء نسخة أبسط وسترى تختفي المسألة. يتم إخفاء الخلل في تعقيد التعليمات البرمجية الخاصة بك.
أو، ويتفوريكسيت لم يعود ولكن لم تلاحظ. أو، لم يتم تنفيذ القتل أبدا أو فشل. ومرة أخرى، سيؤدي تبسيط الشفرة إلى الكشف عن هذه المسألة. يمكنك إحضارها إلى 5 خط النسخ؟ أشك في أنك تستطيع، ولكن سوف ننظر مرة أخرى إذا كنت تفعل.
في التعليقات التي حددتها أن قتل بينغ لا يعمل، ولكن قتل العملية الخاصة بك لا. والسبب في ذلك عادة هو إو غير قابلة للإلغاء. نواة ويندوز تبقي العمليات في جميع أنحاء حتى يتم إو جميع. والخبر السار هو أن العملية ستموت في نهاية المطاف ولن يتم تشغيل أي كود بعد أن عاد كيل. الأخبار السيئة هي أن تنظيف الموارد لم يكتمل تماما.

عملية ويتفوريكسيت قتل
لقد كتبت نموذجا يخلق العمليات ويعيد التوجيه بشكل غير متزامن الإخراج القياسي إلى سترينغبيلدر. والمشكلة الرئيسية هي أن كل الآن وبعد ذلك عملية بلدي لا دافق بشكل صحيح، مما تسبب في سترينغبويلدر أن تكون غير مكتملة.
جميع الردود.
بول بيكسيت = process. WaitForExit (50000)؛
الذي (أعتقد) إنهاء العملية بعد 50 ثانية إذا كان لا إنهاء نفسها. إذا كان هذا صحيحا، الإصلاح هو:
بول بيكسيت = process. WaitForExit ()؛
الأمر الذي من شأنه أن يسبب البرنامج إلى الانتظار إلى الأبد حتى تنتهي العملية - في هذه الحالة سوف تدفق بشكل صحيح. إذا كنت لا تريد الانتظار إلى الأبد، يمكنك محاولة زيادة مقدار الوقت الذي تنتظره إلى 10 دقائق:
بول بيكسيت = process. WaitForExit (600000)؛
أو قم بتغيير العملية sample_huge_output. exe بحيث يخرج بشكل صحيح إذا تم إنهاء أثناء التنفيذ ويدفق بشكل صحيح.
آمل أن يكون هذا العمل والتمتع الترميز.
اقترح كجواب من قبل كونتريستيل الثلاثاء، 17 مايو، 2018 6:04 م غير منشورة كجواب من قبل dagabe14 الثلاثاء، 17 مايو، 2018 6:39 م.
شكرا لكم على الرد. لسوء الحظ، هذا لا يجيب على سؤالي. الغرض الرئيسي من هذا الرمز هو أداة تلقائية للصف c & # 43؛ & # 43؛ تعيينات لدورة تعليم. كنت قد ذهبت مع نص بسيط كما معظم المدربين القيام به، ولكن وجدت شكل C # إلى أفضل بحيث يمكنني جعلها عامة قدر الإمكان.
ما يعنيه هذا هو أنني لا أعرف دائما كم من الوقت سيستغرق العملية وما إذا كانت العملية سوف تخرج بشكل صحيح، وذلك لأنه في حالة أن الطالب يقدم مهمة التي تحتوي على حلقة لانهائية أو شيء ما بطريقة مماثلة، ثم هذا كريبروسيس وظيفة مسدودة، لأن العملية لن تنتهي أبدا.
هذا & كوت؛ sample_huge_output. exe & كوت؛ حلقات أساسا من 0 إلى 2.5 مليون، طباعة & كوت؛ القيمة =٪ i & كوت؛ ويستغرق حوالي 5-6 ثواني. لقد سمح لها بالوقت الكافي (أي 50 ثانية) حتى لا يكون هناك سبب لقطعها بسبب عملية تستغرق وقتا طويلا. لاختبار ذلك، أسميه الدالة كريتيبروسيس 50 مرة في كل مرة يتم الضغط على زر. من 200 المكالمات إلى كراتيبروسيس، 199 الناتج بشكل صحيح، مع 1 لا يجري مسح بشكل صحيح. وأنا أعلم أن هذا هو معدل فشل 0.5٪، ولكني أفضل أن تكون قريبة من الصفر ممكن.
شكرا لك على مساعدتك.
أعتقد أنك تفعل الشيء الصحيح وفقا للوثائق ولكن ربما نحن في عداد المفقودين شيء:
حسنا. حتى تأخذ من process. waitforexit (50000) كما يبتسم العالم كله في ذكر لك. فإنه ليس مطلوبا إلا إذا كانت العملية التي كنت تتصل معلقة (وإذا كان هذا هو الحال لا يمكننا مساعدتك هنا). ثم تحقق من هذا الموضوع الآخر مع بعض الموارد.
شكرا على التوصية. سأحاول ذلك دون ويتفوريكسيت (50000). الشيء الوحيد الذي أريد توضيحه هو أن المشكلة ليست عند توقف العملية. إذا كان هذا هو الحال، أنا لا يهمني الإخراج لأنه لا يمكن مقارنة الإخراج الرئيسي لأن هناك مشكلة مع تقديم الطالب. تحدث المشكلة عندما تنتهي العملية بشكل صحيح مع الوقت الكافي لطرد الإخراج، ولكن لا.
تقوم ميكروسوفت بإجراء استطلاع عبر الإنترنت لفهم رأيك لموقع مسن على الويب. إذا اخترت المشاركة، سيتم تقديم الاستبيان عبر الإنترنت لك عند مغادرة موقع مسن على ويب.

Process. WaitForExit ()
إذا لم pstart. HasExited ثم.
بينما لا pStart. HasExited ()
إذا pStart. StartTime & لوت؛ Now. AddSeconds (120) ثم.
فاسيبوك تويتر لينكيدين إكسيرتس-إكسهانج / كيستيونس / 23298651 / بروسيس-WaitForExit. html كوبي.
لطرح الأسئلة وإيجاد الحلول.
مشاركة مميزة.
كونشيرتو الخدمات الاستشارية السحابية.
تريد تجنب الأخطاء للحصول على جميع فوائد السحابة؟ تعرف على المزيد حول خيارات التقييم المختلفة من فريق الاستشارات في السحاب.
إذا كنت تواجه مشكلة مشابهة، فيرجى طرح سؤال ذي صلة.
الدورات المقترحة.
سأل 615 عضوا الأسئلة وتلقوا حلول شخصية في 7 أيام الماضية.
الانضمام إلى المجتمع من 500،000 المهنيين التكنولوجيا وطرح أسئلتك.
تتمتع إجابتك؟
الانضمام إلى مجتمعنا لمزيد من الحلول أو لطرح الأسئلة.

عملية ويتفوريكسيت قتل
قد يبدو هذا السؤال غريبا بعض الشيء ولكني أحاول تشغيل VS2005 من خلال عملية وتنفيذ أمر معين وأنا ويتوفوريكسيت (). أنا إعادة توجيه الإدخال والإخراج بنجاح ولكن كل الآن وبعد ذلك يحدث لتلقي نافذة خطأ الإبلاغ عن إطار / رسالة. والمشكلة هي أنني عن بعد، لذلك عندما تحدث هذه الرسالة / النافذة أثناء تنفيذ العملية، وسوف شنق إلا إذا قمت بتسجيل الدخول إلى الجهاز الآخر (عن بعد) وإغلاق النافذة.
هل هناك أي طريقة لقتل هذه النافذة بشكل منهجي أو تعطيل الرسالة / النافذة من حدوثها؟ لقد فكرت في تشغيل فس في التنفيذ الصامت (لم أجد حتى الآن وسيلة للقيام بذلك). لقد حاولت أيضا معرفة ما إذا كان هناك أي شيء يجري محاصر عندما يحدث هذا مقارنة عندما لا يفعل ذلك.
حسنا، حاولت استخدام فيندويندو و فيندويندكس جنبا إلى جنب مع سيندمسيج ولكن لم أتمكن من العثور على مقبض النافذة الصحيح. ولكن بما أنني أعرف أن ويندوز مساج مربع الإبلاغ عن الخطأ سوف تكون ظهرت، راجعت لمعرفة ما إذا كان كان العملية الخاصة بها (وأنه هو). هذه العملية هي dwwin. exe (الدكتور واتسون وين) وكل ما كان علي القيام به هو هذا للسماح لنفسي للحصول على الصحيح المشكلة الحالية. استبدال كتلة التعليمات البرمجية الحالية أدناه لبيان ويتفوريكسيت () التي سبق لي.
proc. WaitForExit (60000)؛ // دقيقة واحدة.
بروسيس [] بروكاراي = Process. GetProcessesByName (& كوت؛ دوين & كوت؛)؛
فوريتش (عملية معالجة في بروكاراي)
كما تحققت لمعرفة ما إذا كنت قادرا على الحصول على process. MainWindowTitle ()، ولكن تم تعيينها إلى & كوت؛ & كوت ؛. لذلك هذا هو الإختراق وأنا حقا لا ترغب في استخدامه، لكنه يعمل من أجل التنفيذ الحالي.
جميع الردود.
هل يمكن أن تكون محددا مع الخطأ الذي تتلقاه؟
يحدث هذا فقط عند إعادة توجيه المدخلات والمخرجات؟
هل تقوم بتشغيل وحدة التحكم & كوت؛ سمد & كوت؛ ؟
إذا كان الجواب نعم ثم لديك لكتابة الخروج أيضا.
// العملية خرجت قبل المهلة الفترة.
// رسالة خطأ الطباعة؟
أود أن أحاول ذلك، ولكن الكثير من الإختراق. لدي العديد من الأوامر المختلفة التي تأخذ كميات مختلفة من الوقت (30 ثانية إلى 25 دقيقة) لذلك ليس هناك إعداد الوقت الحقيقي التي يمكن أن مكان دون تدمير أدائي. وقد عملت هذه الوظيفة بشكل صحيح لأوامر متعددة على مدى 6 أشهر الماضية والآن تقرر *** على لي. حاولت ذلك على جهاز كمبيوتر مختلف دون أي مشاكل (الذي هو حقا العبث معي). وأنا أعلم أنه ليس إخراج / خطأ إعادة توجيه لأنه يتم إنشاء نافذة جديدة على الملقم الذي أنا ريموتينغ إلى. بمجرد إغلاق هذه النافذة، عملية الخروج كما هو متوقع ويتم عرض الإخراج الصحيح على الجانب المستخدم.
أشكركم على مساعدتكم، لكنني أحبط حقا من هذه المشكلة.
دون معرفة تفاصيل الرسالة نحن مجرد التخمين في هذه المشكلة.
هل قمت بتثبيت الإصدار التجريبي 3.5 بيتا أو فيسوال ستوديو 2008 على الإطلاق؟
كيف تستخدم عملية لبدء البرنامج، process. Start (& كوت؛ file. exe & كوت؛)، أو تستخدم بروسيسستارتينفو؟
لا، لدي 2003 و 2005 مثبتة.
بروك = نيو بروسيس ()؛
بروكسي = نيو بروسيسستارتينفو ()؛
ثم قمت بإعداد مؤشر ترابط جديد لكل من ستانداردرور و ستانداردوتبوت.
ثم أكتب الأوامر و.
إذا (إعادة توجيه معيار الخروج)
بدء الموضوع ل ست. خارج.
إذا (إعادة توجيه الخطأ القياسي)
بدء الموضوع ل ست. خطأ.
Proc. WaitForExit ()؛ & لوت؛ -------- هذا هو المكان الذي تحدث فيه النافذة العامة للإبلاغ عن الأخطاء في ويندوز.
لقد ترجمت ما استطعت من النافذة أن ينبثق.
問題 が 発 生 し た た た め، ميكروسوفت فيسوال ستوديو 2005 を 終了 し ま す ご 不便 を お か か け し て 申 し 訳 あ り ま せ ん.
لأنه يحدث مشكلة، فإنه ينتهي ميكروسوفت فيسوال ستوديو 2005. نحن تطبيق إزعاج، ليس هناك عذر.
شكرا مرة أخرى على كل وقتك.
لماذا تفعل هذا؟ أنت لا تملك هذا البث حتى لا يجب إغلاقه.
هل هذا خطأ مطبعي؟ قبل أن تتحدث عن متغير اسمه & كوت؛ بروك & كوت ؛، ليس & كوت؛ بروك & كوت ؛. هل هذه مجرد إشارة خالية لأنك تحاول استدعاء طريقة على مرجع مختلف عن & كوت؛ بروك & كوت ؛؟
لا تريد إغلاق كائن سين حتى بعد خروج التطبيق إذا كنت تعيد التوجيه. إذا كان التطبيق يكتب إلى الإخراج القياسية أو يقرأ من المدخلات القياسية بعد إغلاق أي واحد من تلك يمكن أن يسبب استثناء.
هل لديك تتبع المكدس من رسالة الخطأ هذه؟
لا تريد إغلاق كائن سين حتى بعد خروج التطبيق إذا كنت تعيد التوجيه.
لا ينبغي للمرء أن يغلق أي من تلك التدفقات على الإطلاق. كائن العملية يمتلكها وهي المسؤولة عن التنظيف بعد نفسه. يجب على واحد في أفضل استدعاء عملية. ديسبوس () بعد الانتهاء مع كائن العملية.
أنا خلقت ستريموريتر قبل إنشاء كائن بروس عملية. ثم إعادة توجيه الإدخال بعد الأمر proc. Start ()، فكيف لا أملك هذا؟ بغض النظر، يمكنني إجراء التغيير لنقل sIn. Close () إلى ما بعد مكالمة ويتفوريكسيت لمعرفة ما إذا كان هذا يجعل أي تغييرات.
وكان بروك نوع، كان ينبغي أن يكون بروك.
مرة أخرى، أنها ليست رسالة خطأ، لذلك ليس هناك تتبع المكدس. عملية إعادة توجيه ماي ستانداردرور فارغة وتحتوي إعادة توجيه أوتبوت القياسية على ما توقعته، ولكن لا يوجد شيء يشير إلى حدوث خطأ. هذا هو السبب في أن كل شيء لا يزال يعمل بعد إغلاق إطار "الإبلاغ عن خطأ ويندوز".
سأقوم بنشر ما يحدث بعد نقل سطر sIn. Close () أسفل سطر ويتفوريكسيت ().
لا تريد إغلاق كائن سين حتى بعد خروج التطبيق إذا كنت تعيد التوجيه.
لا ينبغي للمرء أن يغلق أي من تلك التدفقات على الإطلاق. كائن العملية يمتلكها وهي المسؤولة عن التنظيف بعد نفسه. يجب على واحد في أفضل استدعاء عملية. ديسبوس () بعد الانتهاء مع كائن العملية.
طيب، أنا أفعل process. Close في كتلة أخيرا من بلدي التعليمات البرمجية، لذلك ينبغي أن تؤخذ الرعاية من ذلك الحين.
عفوا عن & كوت؛ لا تملك & كوت؛ التعليق الذي أدليت به سابقا. أنا مجرد عاد الغداء شكل وفقدان حقيقة أن عملية السيطرة على هذا.
process. Close هو الأسلوب الموصى به لإغلاق ستانداردينبوت و ستانداردوتبوت (و ستانداردورور) تيارات.
وسأكون قد فوجئت إذا لم تطلق طريقة ديسبوس إغلاق، على الأقل كجزء من عملها. وأود أن تفضل استخدام حقيقة أنه منذ عملية تنفذ إديسبوسابل (بشكل غير مباشر من خلال توسيع مكون الذي ينفذ ذلك)، ينبغي للمرء أن استدعاء التخلص منها والسماح بذلك لتنظيف السليم. لا أوصي بالاستدعاء process. Close بدلا من، بالإضافة إلى، process. Dispose.
process. Close هو الأسلوب الموصى به لإغلاق ستانداردينبوت و ستانداردوتبوت (و ستانداردورور) تيارات.
وسأكون قد فوجئت إذا لم تطلق طريقة ديسبوس إغلاق، على الأقل كجزء من عملها. وأود أن تفضل استخدام حقيقة أنه منذ عملية تنفذ إديسبوسابل (بشكل غير مباشر من خلال توسيع مكون الذي ينفذ ذلك)، ينبغي للمرء أن استدعاء التخلص منها والسماح بذلك لتنظيف السليم. لا أوصي بالاستدعاء process. Close بدلا من، بالإضافة إلى، process. Dispose.
كما أنا متأكد من أنك تعرف، وهذه هي مكافئ وظيفيا:
باستخدام (ميوبجيكت سوميثينغديسبوسابل =.)
// استخدام ميوبجيكت هنا.
// استخدام ميوبجيكت هنا.
إف (ميوبجيكت! = نول) myObject. Dispose ()؛
حتى إذا كانت التوصية الأولى هي استخدام كتلة استخدام، ثم التالي سيكون أفضل للاتصال ديسبوس، وليس إغلاق، عندما، كما قلت، كنت أعلم أنك فعلت مع الكائن.
من خلال استدعاء فقط إغلاق على شيء الذي ينفذ إديسبوسابل، المطور من المحتمل أن يحدث خطأ. إذا تخلص يفعل بعض تنظيف إضافية وراء مجرد التفويض لإغلاق، ثم المبرمج هو وضع نفسه حتى علة فقط عن طريق إغلاق إغلاق.
قد تكون هناك حالة لاستدعاء إغلاق، ولكن فقط إذا كنت لم تفعل مع الكائن، كما هو مبين في الجزء السفلي من الرد الأخير. ولكن عند القيام به، والدعوة التخلص منها.
كما أنا متأكد من أنك تعرف، وهذه هي مكافئ وظيفيا:
باستخدام (ميوبجيكت سوميثينغديسبوسابل =.)
// استخدام ميوبجيكت هنا.
// استخدام ميوبجيكت هنا.
إف (ميوبجيكت! = نول) myObject. Dispose ()؛
حتى إذا كانت التوصية الأولى هي استخدام كتلة استخدام، ثم التالي سيكون أفضل للاتصال ديسبوس، وليس إغلاق، عندما، كما قلت، كنت أعلم أنك فعلت مع الكائن.
من خلال استدعاء فقط إغلاق على شيء الذي ينفذ إديسبوسابل، المطور من المحتمل أن يحدث خطأ. إذا تخلص يفعل بعض تنظيف إضافية وراء مجرد التفويض لإغلاق، ثم المبرمج هو وضع نفسه حتى علة فقط عن طريق إغلاق إغلاق.
قد تكون هناك حالة لاستدعاء إغلاق، ولكن فقط إذا كنت لم تفعل مع الكائن، كما هو مبين في الجزء السفلي من الرد الأخير. ولكن عند القيام به، والدعوة التخلص منها.
ديسبوسابلكلاس أوبج = نيو ديسبوسابلكلاس ()؛
يمكن التخلص منها القابل للتصرف = أوبج كما لا يمكن إديسبوسابل؛
إف (ديسبوسابل! = نول)
ولكن نعم، هذا هو عبارة استخدام عبارة & كوت؛ مكافئ وظيفيا & كوت؛ إلى؛ ولكني لا أوافق على الاستدعاء صراحة التخلص في وجود & كوت؛ إغلاق & كوت؛ يجب أن يكون الأسلوب الخيار الأول بسبب عدم تحديد نطاق مع دعوة تخلص. على سبيل المثال، ما يلي:
باستخدام (عملية عملية = عملية جديدة ())
. هو خطأ في البنية.
وفيما يلي:
عملية العملية = عملية جديدة ()؛
// ليس هناك طريقة ل غوارنتي & كوت؛ عملية & كوت؛ متعود.
// يتم الوصول إليها بعد ما سبق.
هو خطأ وقت التشغيل (أوبجكتديسبوسيدكسيبتيون). لا يؤدي استخدام كلوز إلى حدوث خطأ وقت التشغيل:
عملية العملية = عملية جديدة ()؛
من الأفضل دائما أن تتاجر في خطأ وقت التجميع لخطأ وقت التشغيل.
لذلك، أنا وضعت نقطة توقف بعد الدعوة proc. WaitForExit () وأنا لم تصل بعد هذه النقطة. بحيث يبدو وكأنه مشكلة تماما.
لذلك، أنا وضعت نقطة توقف بعد الدعوة proc. WaitForExit () وأنا لم تصل بعد هذه النقطة. بحيث يبدو وكأنه مشكلة تماما.
كان لي تشغيل الخدمة، ولكن توقفت لأنه كان قد ركض لمدة 2 ساعة ولم تكن أبدا نقطة توقف أنه كان يجب أن تصل في غضون 10 دقيقة من لي بداية موكلي. أنا أونكومنتيد الخط sIn. Close () فقط الآن وإعادة بدء الخدمة والعميل وكل شيء يعمل كما فعل من قبل. يمكن أن تصل إلى نقطة التوقف بعد ويتفوريكسيت () وأكمل، مع رسالة خطأ تقرير ويندوز لا يزال (كما كان من قبل).
لذلك، في حالتي، أنا بحاجة إلى إغلاق تيار المدخلات لتكون قادرة على الخروج من العملية كما هو متوقع. هل هناك اي افكار اخرى؟
أستطيع أن ريكومنت الخط sIn. Close () إذا كنت ترغب في التحقق من شيء.
كان لي تشغيل الخدمة، ولكن توقفت لأنه كان قد ركض لمدة 2 ساعة ولم تكن أبدا نقطة توقف أنه كان يجب أن تصل في غضون 10 دقيقة من لي بداية موكلي. أنا أونكومنتيد الخط sIn. Close () فقط الآن وإعادة بدء الخدمة والعميل وكل شيء يعمل كما فعل من قبل. يمكن أن تصل إلى نقطة التوقف بعد ويتفوريكسيت () وأكمل، مع رسالة خطأ تقرير ويندوز لا يزال (كما كان من قبل).
لذلك، في حالتي، أنا بحاجة إلى إغلاق تيار المدخلات لتكون قادرة على الخروج من العملية كما هو متوقع. هل هناك اي افكار اخرى؟
أستطيع أن ريكومنت الخط sIn. Close () إذا كنت ترغب في التحقق من شيء.
كيف تستخدم المدخلات القياسية والإخراج القياسي؟ هل تستخدم أي أساليب ريادلين؟
بيتر، وجهة نظري هي:
إذا كنت لا ندعو ديسبوس على كائن الذي ينفذ (بشكل مباشر أو غير مباشر) إديسبوسابل، ثم كنت مجرد طلب للحصول على علة. أنا لا أريد أن أجادل على هذا لا نهاية لها على الرغم من. يمكنك الاستمرار في القيام بذلك بالطريقة التي تقوم بها، وأنا سوف عصا مع الألغام. طالما أننا لم يكن لديك للحفاظ على رمز بعضها البعض، غرامة.
وبالمناسبة، استخدم & كوت؛ استخدام & كوت؛ كتلة لا يحميك سواء. لا شيء يمنعك من إعلان المتغير خارج الكتلة (إذا كنت أذكر بشكل صحيح)، لذلك يمكن أن يكون لا يزال في النطاق بعد انتهاء كتلة. عليك أن تكون مجتهدا في كتابة التعليمات البرمجية الصحيحة. إذا كنت تعلن ذلك في صفحة & كوت؛ باستخدام & كوت؛ بيان، هذه طريقة واحدة. ولكن لرفض باستخدام محاولة / أخيرا نهج فقط لأنه يترك المتغير في نطاق ليست حقا هذه النقطة. فإنه لا يزال يحتاج إلى أن تخلص () 'د في مكان ما.
كان لي تشغيل الخدمة، ولكن توقفت لأنه كان قد ركض لمدة 2 ساعة ولم تكن أبدا نقطة توقف أنه كان يجب أن تصل في غضون 10 دقيقة من لي بداية موكلي. أنا أونكومنتيد الخط sIn. Close () فقط الآن وإعادة بدء الخدمة والعميل وكل شيء يعمل كما فعل من قبل. يمكن أن تصل إلى نقطة التوقف بعد ويتفوريكسيت () وأكمل، مع رسالة خطأ تقرير ويندوز لا يزال (كما كان من قبل).
لذلك، في حالتي، أنا بحاجة إلى إغلاق تيار المدخلات لتكون قادرة على الخروج من العملية كما هو متوقع. هل هناك اي افكار اخرى؟
أستطيع أن ريكومنت الخط sIn. Close () إذا كنت ترغب في التحقق من شيء.
كيف تستخدم المدخلات القياسية والإخراج القياسي؟ هل تستخدم أي أساليب ريادلين؟
مرة أخرى، هذا ليس استثناء الذي يجري القيت، لذلك أنا لا أرى أي تفاصيل الاستثناء. أنا لا أذهب مباشرة إلى كتلة الصيد في بلدي التعليمات البرمجية، وأنا استأنف مباشرة بعد دعوة ويتفوريكسيت (). النافذة التي أتلقىها هي نفسها التي تحصل عليها عند إغلاق أي منتج ميكروسوفت بشكل غير متوقع وتريد مس معلومات حول تحطم. لذلك مرة أخرى، لا توجد تفاصيل استثناء. ومع ذلك في واحدة من سجلات النظام، وأنا أتلقى ميساج (مترجمة من اليابانية)
& كوت؛ تحدث Devenv. exe تطبيق إروس، حدثت 8.0.50727.762 نسخة من الأخطاء وحدة msvcr80.dll، الإصدار 8.0.50727.762، حدثت أخطاء عنوان 0x00039001.
لمزيد من المعلومات، go. microsoft/fwlink/events. asp هيلو أند سوبورت سينتر يرجى الرجوع. & كوت؛
أنا إعادة توجيه المدخلات القياسية لتمرير في الأوامر المختلفة في لأنني كنت تواجه صعوبة في الحصول عليها للعمل كيف أردت شكل ستارتينفو. أنا إعادة توجيه تيارات الإخراج والخطأ للتحقق ما لديهم فيها بعد انتهاء العملية. هذا سوف يسمح لي للتحقق من أي شيء أود في أي تيار بمجرد الانتهاء. أنا أيضا لا تسمح أي من الإخراج أو خطأ إعادة توجيه المواضيع للانضمام حتى بعد اجتياز العملية استدعاء ويتفوريكسيت.
أنا حيرة تماما.
بيتر، وجهة نظري هي:
إذا كنت لا ندعو ديسبوس على كائن الذي ينفذ (بشكل مباشر أو غير مباشر) إديسبوسابل، ثم كنت مجرد طلب للحصول على علة. أنا لا أريد أن أجادل على هذا لا نهاية لها على الرغم من. يمكنك الاستمرار في القيام بذلك بالطريقة التي تقوم بها، وأنا سوف عصا مع الألغام. طالما أننا لم يكن لديك للحفاظ على رمز بعضها البعض، غرامة.
أنا لا أوافق. انها ليست & كوت؛ علة & كوت؛ إلى عدم استدعاء ديسبوس. لن يتم تحرير الموارد الخاصة بك على الفور، ولكن سوف غ الافراج عنهم إذا كان يحتاج إلى الذاكرة (على افتراض أن نمط التخلص يتم تنفيذها بشكل صحيح وتوجد النهائية). إذا كانت الفئة التي تستخدمها تنفذ & كوت؛ إغلاق & كوت؛ الطريقة التي لا تفعل كل الأشياء نفسها & كوت؛ تخلص & كوت ؛، إغلاق إما أن تكون موثقة على هذا النحو أو هناك خلل في الصف. لم أجد قط إطارا إطاريا ينفذ طريقة إديسبوسابل و كلوس () التي أدخلت & كوت؛ تسرب & كوت؛ عندما تم استدعاء كلوز دون استدعاء التخلص. النمط الساحق ل ديسبوس / كلوز هو أن ديسبوس كالس كلوز وكذلك تعيين & كوت؛ التخلص منها & كوت؛ علم (يستخدم لرمي أوبجكتديسبوسيدكسيبتيون).
في الواقع هذا هو مفصل في المرجع العام الإطار: & كوت؛ أحيانا اسم مجال معين هو أكثر ملاءمة من التخلص منها. على سبيل المثال، قد ترغب في تغليف ملف استخدام اسم الأسلوب إغلاق. في هذه الحالة، تنفيذ تخلص من القطاع الخاص وإنشاء طريقة إغلاق العام الذي يدعو التخلص. يوضح المثال التعليمات البرمجية التالي هذا النمط. يمكنك استبدال "إغلاق" باسم طريقة مناسب لنطاقك. & كوت؛ من تنفيذ الانتهاء من التخلص من الموارد غير المدارة والتخلص منها.
فضلا عن & كوت؛ بالنسبة لفئات معينة من الكائنات، مثل ملفات أو كائنات اتصال قاعدة البيانات، يمثل الأسلوب إغلاق بشكل أفضل العملية المنطقية التي يجب تنفيذها عند الانتهاء من كائن المستهلك مع الكائن. & كوت؛ من تحسين أداء الشفرة المدارة (على الرغم من أنه يحتوي أيضا على تفاصيل & كوت؛ في الحالات المكتوبة بشكل جيد، كلاهما متكافئ وظيفيا. & كوت؛ يعني أن استخدام كلوز أكثر وضوحا من خلال & كوت؛ أفضل يمثل & كوت ؛.)
وبالمناسبة، استخدم & كوت؛ استخدام & كوت؛ كتلة لا يحميك سواء. لا شيء يمنعك من إعلان المتغير خارج الكتلة (إذا كنت أذكر بشكل صحيح)، لذلك يمكن أن يكون لا يزال في النطاق بعد انتهاء كتلة. عليك أن تكون مجتهدا في كتابة التعليمات البرمجية الصحيحة. إذا كنت تعلن ذلك في صفحة & كوت؛ باستخدام & كوت؛ بيان، هذه طريقة واحدة. ولكن لرفض باستخدام محاولة / أخيرا نهج فقط لأنه يترك المتغير في نطاق ليست حقا هذه النقطة. فإنه لا يزال يحتاج إلى أن تخلص () 'د في مكان ما.
مرة أخرى، هذا ليس استثناء الذي يجري القيت، لذلك أنا لا أرى أي تفاصيل الاستثناء. أنا لا أذهب مباشرة إلى كتلة الصيد في بلدي التعليمات البرمجية، وأنا استأنف مباشرة بعد دعوة ويتفوريكسيت (). النافذة التي أتلقىها هي نفسها التي تحصل عليها عند إغلاق أي منتج ميكروسوفت بشكل غير متوقع وتريد مس معلومات حول تحطم. لذلك مرة أخرى، لا توجد تفاصيل استثناء. ومع ذلك في واحدة من سجلات النظام، وأنا أتلقى ميساج (مترجمة من اليابانية)
& كوت؛ تحدث Devenv. exe تطبيق إروس، حدثت 8.0.50727.762 نسخة من الأخطاء وحدة msvcr80.dll، الإصدار 8.0.50727.762، حدثت أخطاء عنوان 0x00039001.
لمزيد من المعلومات، go. microsoft/fwlink/events. asp هيلو أند سوبورت سينتر يرجى الرجوع. & كوت؛
افترضت أن طلبك كان يولد الرسالة (في هذه الحالة يجب أن تحصل دائما على استثناء وتتبع المكدس). لم يكن من الواضح أنك استئناف بعد الدعوة إلى ويتفوريكسيت (). يبدو لي مثل التطبيق الذي تقوم بتشغيله هو إنهاء بشكل غير طبيعي. هل تقوم بتشغيل devenv. exe؟ أنا لست متأكدا ما يمكنك القيام به في التطبيق الخاص بك لوقف تطبيق آخر من إنهاء بشكل غير طبيعي.
أنا إعادة توجيه المدخلات القياسية لتمرير في الأوامر المختلفة في لأنني كنت تواجه صعوبة في الحصول عليها للعمل كيف أردت شكل ستارتينفو. أنا إعادة توجيه تيارات الإخراج والخطأ للتحقق ما لديهم فيها بعد انتهاء العملية. هذا سوف يسمح لي للتحقق من أي شيء أود في أي تيار بمجرد الانتهاء. أنا أيضا لا تسمح أي من الإخراج أو خطأ إعادة توجيه المواضيع للانضمام حتى بعد اجتياز العملية استدعاء ويتفوريكسيت.
أنا حيرة تماما.
وبالتالي السبب في أنني ظللت تقول أنه لم يكن استثناء وأن رمز بلدي لا يزال فونسيتوند بقية الطريق إلى الانتهاء، كما هو متوقع.
وبالتالي. هل هناك أي طريقة للقبض على استثناء التطبيق من داخل عملية قيد التشغيل إذا لم تكن قد خرجت بعد. وهذا سيحدث ليكون السؤال الحقيقي.
حسنا، حاولت استخدام فيندويندو و فيندويندكس جنبا إلى جنب مع سيندمسيج ولكن لم أتمكن من العثور على مقبض النافذة الصحيح. ولكن بما أنني أعرف أن ويندوز مساج مربع الإبلاغ عن الخطأ سوف تكون ظهرت، راجعت لمعرفة ما إذا كان كان العملية الخاصة بها (وأنه هو). هذه العملية هي dwwin. exe (الدكتور واتسون وين) وكل ما كان علي القيام به هو هذا للسماح لنفسي للحصول على الصحيح المشكلة الحالية. استبدال كتلة التعليمات البرمجية الحالية أدناه لبيان ويتفوريكسيت () التي سبق لي.
proc. WaitForExit (60000)؛ // دقيقة واحدة.
بروسيس [] بروكاراي = Process. GetProcessesByName (& كوت؛ دوين & كوت؛)؛
فوريتش (عملية معالجة في بروكاراي)
كما تحققت لمعرفة ما إذا كنت قادرا على الحصول على process. MainWindowTitle ()، ولكن تم تعيينها إلى & كوت؛ & كوت ؛. لذلك هذا هو الإختراق وأنا حقا لا ترغب في استخدامه، لكنه يعمل من أجل التنفيذ الحالي.
تقوم ميكروسوفت بإجراء استطلاع عبر الإنترنت لفهم رأيك لموقع مسن على الويب. إذا اخترت المشاركة، سيتم تقديم الاستبيان عبر الإنترنت لك عند مغادرة موقع مسن على ويب.

No comments:

Post a Comment