C # عملية ويتفوريكسيت رمز العودة


C # بروسيس ويتفوريكسيت ريتورن كود
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
جار التحقق مما إذا كانت العملية قد عطلت خطأ | C #
بعد الإعلان & أمب؛ بدءا من العملية على النحو التالي:
هناك احتمالان الآن: إما إخراج أو خطأ.
في حالة حدوث خطأ، هل هناك أي خاصية من فئة العمليات التي لمعرفة ما إذا حدث خطأ؟
أنا إعادة توجيه الإخراج القياسية، وأنا لا أريد أن إعادة توجيه خطأ القياسية كما حذر في مسن. أيضا أنا لا أريد استخدام: بيجينأوتوبترادلين ()؛
هل هناك أي بدائل؟
لدي خدمة تحتاج إلى بدء العمليات والانتظار لهم للخروج، وأنا استخدم شيئا مثل:
حيث كومانديروركود شيء من هذا القبيل.
راجع للشغل، وأعد توجيه كل من الإخراج القياسي والخطأ القياسي، واستخدام بيجينكسسريادلين و زسداتاريسيتد هاندلرز، وليس لديك أي مشاكل، ولكن العمليات التي استخدمها معروفة، محددة جيدا، وتصرفت بشكل جيد.

C # بروسيس ويتفوريكسيت ريتورن كود
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
الحصول على إكسيتكود من سمد باستخدام c #
أنا باستخدام التعليمات البرمجية التالية لكتابة باث و إكسكوتابل نيم و أرغمينتس إلى ملف دفعي وتنفيذها من خلال سمد باستخدام c #. المشكلة في بعض الأحيان يبدأ تطبيق دوسنت حتى بعد تنفيذ ملف الدفعي. و C # كود دوسنت تعطيني استثناء أو أي إعلام.
التي أريد الحصول على إكسيتكود من سمد لتحديد ما إذا كانت الأوامر تنفيذها بشكل صحيح. كيف يمكنني تحديد رمز الخروج؟
النصي داخل باتشفيل: [لاحظ أن Notepads. exe خطأ للحصول على الخطأ]
"إف"٪ إرورليفيل٪ "==" 1 "إكسيت / B 1"
من الأسهل بكثير تشغيل العملية مباشرة بدلا من استخدام إنشاء ملف دفعي تقوم بتنفيذه لاحقا نظرا لأنك تفقد بعض التحكم منذ كنت تستخدم طبقة البرامج النصية الدفعة.
استخدم هذا الرمز بدلا من ذلك:
أنا استخدامه في عدد من المشاريع وأنها تعمل مثل سحر.
إذا كان لديك للذهاب المسار النصي دفعة، تأكد من أن مجموعة البرامج النصية مجموعة رمز الخروج بشكل صحيح.
هل الخاصية process. ExitCode لا تعطيك ما تريد؟ من الواضح أنك بحاجة للتأكد من أن ملف الدفعات نفسه يخرج مع رمز الخروج الصحيح، مما يعكس التطبيق انها قيد التشغيل.
بالمناسبة، يجب عليك استخدام العبارات للتأكد من أن جميع الجداول ذات الصلة مغلقة في مواجهة الاستثناءات - وأود أن أقترح الطرق غير المتزامنة للرد على البيانات من التطبيق، بدلا من إو متزامن. إذا كنت لا عصا إلى إو متزامن، يجب أن يكون لديك قراءة مؤشر ترابط آخر من الخطأ القياسي - وإلا إذا كانت عملية يكتب الكثير من البيانات إلى خطأ قياسي، فإنه سيتم حظر الانتظار لك لمسح العازلة.

C # بروسيس ويتفوريكسيت ريتورن كود
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
عملية ويتفوريكسيت والحصول على قيمة العائد غير المتزامنة.
لدي وظيفة التي تبدأ عملية، وينتظر للخروج ومن إرجاع إكسيتكود:
هذا يعمل بشكل جيد. ولكن بسبب انتظاره للخروج، فإنه يمنع نموذج نافذة (لدي شريط سرادق التقدم الذي هو كونيتنويس تتحرك وتوقف الآن بلباس). ليس لدي أي فكرة عن كيفية إرجاع رمز الخروج غير متزامن ولم أتمكن من العثور على أي حل ممكن فهمته.
يمكنك استخدام هذا الرمز:
ولكن لاحظ أن وظيفة تسجيل الدخول الخروج مباشرة بعد بدء العملية بحيث لا يمكنك إرجاع قيمة عدد صحيح. يمكنك الحصول على رمز الخروج في الدالة process_exited.
يمكنك التسجيل في الحدث Process. Exit والتعامل مع رمز الخروج هناك.
ثم قم بإرجاع حالة الخروج من الأسلوب أونميبروسيسكسيتد.

C # بروسيس ويتفوريكسيت ريتورن كود
محاولة لمعرفة ما إذا كان يمكننا استخدام C # لقيادة بيئة اختبار وحدة وضرب شوستوبر: process. ExitCode من استدعاء العملية يبدو أن الحصول على فقد (الحصول على 0 بدلا من المتوقع 1).
هنا هو برنامج عينة:
وهنا هو إخراج العينة:
يجب ألا يكون هناك & كوت؛ حصلت على أرسي غير متوقع: 0 & كوت؛ رسالة، من الواضح.
لماذا يحدث هذا؟ هل لديك أي أفكار حول كيفية تحري الخلل وإصلاحه؟ هذا هو على Win7 / 64.
بالمناسبة، لقد طرحت سؤالا مماثلا ولكن عن فك & # 43؛ & # 43؛ في فك & # 43؛ & # 43؛ المنتدى.
حرره aam_ الجمعة، 16 نوفمبر 2012 4:54 ص إزالة التوقيع.
جميع الردود.
& كوت؛ التحسين المبتكر هو جذر كل الشر. & كوت؛ - نوث.
شكرا لك، بيتر، على ردكم. والعينة هي مثال مفتعل إلى حد ما، ولكن من مشكلة حقيقية كنا نواجه عندما كان الطفل الخروج "كود الخروج تضيع.
ماذا يعني - الساحقة جدول العملية، على الرغم من؟ :-) أليس من المفترض أن تكون حجر الزاوية في نظام التشغيل.
& كوت؛ التحسين المبتكر هو جذر كل الشر. & كوت؛ - نوث.
لست متأكدا، ولكن يبدو أن العمليات بدأت في حلقة مع & كوت؛ pss. Add (Process. Start (يسي))؛ & كوت؛ ربما لم تكتمل بالضرورة واحدا تلو الآخر في نفس الترتيب تم إضافتها إلى القائمة. أفضل طريقة قد تكون يمكنك تصحيح ورؤية المعرفات العملية بعد بدء تشغيلها ومن ثم التحقق من المعرفات في الحلقة الثانية، للتحقق ما إذا كان الأمر هو نفسه في كلتا الحالتين.
كما يمكنك أن تتمكن من التصحيح ونرى، رمز الخروج من جميع العمليات هي نفسها أم لا.
لست متأكدا، ولكن يبدو أن العمليات بدأت في حلقة مع & كوت؛ pss. Add (Process. Start (يسي))؛ & كوت؛ ربما لم تكتمل بالضرورة واحدا تلو الآخر في نفس الترتيب تم إضافتها إلى القائمة. أفضل طريقة قد تكون يمكنك تصحيح ورؤية المعرفات العملية بعد بدء تشغيلها ومن ثم التحقق من المعرفات في الحلقة الثانية، للتحقق ما إذا كان الأمر هو نفسه في كلتا الحالتين.
جون، شكرا لك على الرد. لأغراض هذا الاختبار أنا في انتظار العمليات في نفس الترتيب التي تم إنشاؤها. فمن الممكن أن تنتهي في ترتيب مختلف، ولكن أنا تسلسل الانتظار. لذلك، على سبيل المثال، حتى لو انتهت العملية الأولى حتى الماضي، وسوف ننتظر تلك الأولى قبل الانتقال على بقية. لا ينبغي أن تؤثر على رمز الخروج، لا أعتقد.
كما يمكنك أن تتمكن من التصحيح ونرى، رمز الخروج من جميع العمليات هي نفسها أم لا.
لكل إخراج عينة فوق كل عمليات الخروج مع الكود 1، باستثناء واحد، الذي خرج مع رمز 0.
بالنظر إلى وصلة مسن، يبدو أن رموز خروج العملية قد لا تكون متماثلة بالنسبة لجميع أنواع العمليات المماثلة. تلك القيمة يمكن أن تكون مختلفة. ومن ثم ينصحون بفحص & كوت؛ هاسكسيتد & كوت؛ بدلا من ذلك.
& كوت؛ يشير المطورون عادة إلى خروج ناجح بقيمة إكسيتكود من الصفر، ويعينون الأخطاء بالقيم غير الصفرية التي يمكن أن تستخدمها طريقة الاتصال للتعرف على سبب إنهاء العملية غير الطبيعي. ليس من الضروري اتباع هذه المبادئ التوجيهية، ولكنها هي الاتفاقية.
إذا حاولت الحصول على إكسيتكود قبل الخروج من العملية، محاولة يلقي استثناء. افحص الخاصية هاسكسيتد أولا للتحقق مما إذا كانت العملية المرتبطة قد انتهت. & كوت؛
بالنظر إلى وصلة مسن، يبدو أن رموز خروج العملية قد لا تكون متماثلة بالنسبة لجميع أنواع العمليات المماثلة. تلك القيمة يمكن أن تكون مختلفة. ومن ثم ينصحون بفحص & كوت؛ هاسكسيتد & كوت؛ بدلا من ذلك.
شكرا لكم، على الاقتراح، جون. تمت إضافة التحقق من الخاصية هاسكسيتد بعد ويتفوريكسيت ()، وهو صحيح دائما، حتى عندما إكسيتكود هو 0 بدلا من المتوقع 1.
فقط بعض المعلومات الإضافية التي قد تكون مفيدة. ركضت هذا على مربع زب مع VS2008 وحصلت على التالي:
مع المعلمات سماليش (20، 10 و 10، 20) أي أخطاء. كل ركض إلى الانتهاء.
مع المعلمات 100، حصلت 20 19 مخارج مع رمز الخطأ -1066598274؛ لا مخارج مع 0. أعطى متعددة أشواط بعض الاختلافات في عندما تحدث أخطاء (أي عدد من النقاط بين الأخطاء) ولكن دائما 19 لمدة خمسة اختبارات.
يبدو أن عددا كبيرا من العمليات تطغى بطريقة أو بأخرى على معالجة نظام التشغيل.
التحيات ديفيد R.
الشيء العظيم حول الكائن المنحى الكود هو أنه يمكن أن تجعل صغيرة، مشاكل بسيطة تبدو كبيرة، معقدة منها.
البرمجة الموجهة نحو الكائن تقدم وسيلة مستدامة لكتابة رمز السباغيتي. - بول جراهام.
يصبح كل برنامج في نهاية المطاف الروكوكو، ومن ثم الركام. - آلان بيرليس.
القياس الصحيح الوحيد من جودة التعليمات البرمجية: وتفس / دقيقة.
تم وضع علامة كجواب من قبل بوب شين موظفو وحدات ميكروسوفت، مشرف الثلاثاء، ديسمبر 04، 2012 9:06 آم غير محدد كجواب من قبل aam_ الثلاثاء، ديسمبر 04، 2012 12:53 بيإم.
لقد حاولنا في العديد من البيئة ولكن لا يمكن أن تتكاثر هذه المسألة. يحتاج إلى مزيد من البحوث وربما تكون بعض الآثار. من وجهة نظر الدعم هذا هو حقا وراء ما يمكننا القيام به هنا في المنتديات. إذا لم تتمكن من تحديد إجابتك هنا أو بمفردك، ففكر في فتح حالة دعم معنا. انتقل إلى هذا الرابط للاطلاع على مختلف خيارات الدعم المتاحة لتلبية احتياجاتك بشكل أفضل: support. microsoft/default. aspx؟id=fh؛en-us؛offerprophone.
تقوم ميكروسوفت بإجراء استطلاع عبر الإنترنت لفهم رأيك لموقع مسن على الويب. إذا اخترت المشاركة، سيتم تقديم الاستبيان عبر الإنترنت لك عند مغادرة موقع مسن على ويب.

Comments

Popular posts from this blog

إستراتيكس فوريكس غراتيس

الفوركس 5830e مربع التلفزيون

90 مؤشر الفوركس