معالجة مهلة ويتوفوريكسيت c #
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
Process. WaitForExit (Int32)
الآن أنا أعمل على تطبيق عداء وحدة التحكم التي تحتوي على التعليمات البرمجية التالية لإخراج السجل والانتظار حتى يتم الانتهاء من العملية:
لدي سؤالان حول هذه القطعة من التعليمات البرمجية.
لاحظت أنه إذا كانت العملية تستغرق وقتا أطول من 30 ثانية، والقنابل دعوة p. ExitCode. ماذا يحدث إذا كانت عمليتي تستغرق ثانية واحدة فقط، فهل ستنتظر 30 ثانية على أي حال أو سيتم إبلاغ العملية من قبل كلر؟
إذا حاولت الحصول على إكسيتكود قبل الخروج من العملية، محاولة يلقي استثناء. قم بفحص الخاصية هاسكسيتد أولا للتحقق مما إذا كان قد تم إنهاء العملية المقترنة.
ليس هناك ما يضمن أنه عندما عودتك إلى ويتفوريكسيت يعود، فإن العملية قد خرجت. من وثائق ويتفوريكسيت:
يتم استخدام الزائد ويتفوريكسيت (Int32) لجعل الانتظار مؤشر الترابط الحالي حتى ينتهي العملية المقترنة. يؤدي هذا التحميل الزائد إلى توجيه مكون العملية إلى انتظار مقدار محدود من الوقت لإنهاء العملية. إذا لم يتم إنهاء العملية المقترنة بنهاية الفترة الزمنية بسبب رفض طلب الإنهاء، يتم إرجاع فالس إلى إجراء الاستدعاء. يمكنك تحديد رقم سالب (لانهائي) ل ميلي ثانية، و process. WaitForExit (Int32) سوف يتصرف نفس الزائد ويتفوريكسيت (). إذا قمت بتمرير 0 (صفر) إلى الأسلوب، فإنه يرجع صحيح فقط إذا كانت العملية قد خرجت بالفعل؛ وإلا فإنه يعود فورا كاذبة.
لاحظ أن هذا يجيب على السؤال الثاني. في حالة انتهاء العملية قبل انتهاء المهلة، ترجع ويتفوريكسيت.
نظرا لأنك حددت مهلة محددة، فإنك تسمح باحتمال عودة الدالة قبل انتهاء العملية. لذلك، يمكنك كتابة التعليمات البرمجية الخاصة بك مثل هذا:
سجل والتر.
. الكتابة أثناء التعلم.
الجمعة 18 تشرين الثاني / نوفمبر 2018.
process. WaitForExit (Int32) معلقة المشكلة.
كما ترون، التعليمات البرمجية يبدأ عملية "cmd. exe" ويمر إليها الأمر أريد أن يتم تنفيذها.
في التعليمات البرمجية استخدم الأمر بينغ - t 8.8.8.8 الذي، بسبب الخيار - t، بينغ المضيف دون توقف. ما يحدث؟ عملية "cmd. exe" جنبا إلى جنب مع الأمر بينغ - t أبدا يخرج ولا يغلق تيار ستدوت وهكذا تعليق التعليمات البرمجية لدينا في أوتبوت = process. StandardOutput. ReadToEnd ()؛ خط لأنه لا يمكن أن تنجح قراءة كل تيار.
يحدث نفس الشيء أيضا إذا كان الأمر في ملف دفعي يعلق لأي سبب من الأسباب، وبالتالي فإن التعليمات البرمجية أعلاه يمكن أن تعمل بشكل مستمر لسنوات ثم تعليق فجأة دون أي سبب واضح.
يمكنك تجربة حالة توقف تام إذا كان الأمر الذي تعلقه على "cmd. exe" أو العملية التي تتصل بها يملأ الإخراج القياسي أو الخطأ القياسي. هذا لأن التعليمات البرمجية لدينا لا يمكن الوصول إلى خطوط.
في واقع الأمر عملية الطفل (الأمر بينغ أو ملف دفعي أو أي عملية كنت تنفذ) لا يمكن أن تستمر إذا برنامجنا لا يقرأ المخازن المؤقتة شغل من تيارات وهذا لا يمكن أن يحدث لأن التعليمات البرمجية هو معلق على الخط مع العملية. ويتفوريكسيت () والتي سوف تنتظر إلى الأبد لمشروع الطفل للخروج.
الحجم الافتراضي لكل من تيارات هو 4096 بايت. يمكنك اختبار هذه الأحجام اثنين مع هذه الملفات دفعة:
معالجة مهلة ويتوفوريكسيت c #
لدي أداة يمكن أن يستغرق وقتا طويلا إلى حد ما لتنفيذ، أطول من مهلة الافتراضي من بويرشيل لبدء عملية 600 ثانية. لذلك أنا أحاول أن أجد وسيلة لزيادة هذا المهلة. إذا تم تشغيل شفرة الاختبار مثل هذا بدون مهلة محددة:
ثم ينتظر النص البرمجي بشكل صحيح لتشغيل الأمر والخروج:
بس U: \ ماي دوكومينتس \ ديفيلوبمنت \ بويرشيل & غ؛ . \ ping_test. ps1.
ولكن إذا حاولت إضافة مهلة إلى الأمر:
عملية بينغ لا يزال ينطلق، لكنه يسقط على الفور إلى البرنامج النصي بويرشيل وأحصل على هذا الإخراج:
بس U: \ ماي دوكومينتس \ ديفيلوبمنت \ بويرشيل & غ؛ . \ ping_test. ps1.
لذا، ماذا أفعل الخطأ هنا؟
الحجة ل system. diagnostic. process. waitforexit () بالميلي ثانية.
لقد طلبت منه الانتظار لمدة ثانية واحدة، ثم الخروج.
تم وضع علامة كجواب من قبل تيغر لي موظف ميكروسوفت الثلاثاء، 26 يوليو، 2018 2:01 ص.
تقوم ميكروسوفت بإجراء استبيان عبر الإنترنت لفهم رأيك لموقع تيشنيت على الويب. إذا اخترت المشاركة، فسيتم تقديم الاستبيان عبر الإنترنت عند مغادرة موقع تيشنيت على ويب.
معالجة مهلة ويتوفوريكسيت c #
لدي التعليمات البرمجية التالية في طلبي:
System. Diagnostics. Process بروك = نيو System. Diagnostics. Process ()؛
بمجرد استدعاء هذا من خلال تطبيق آخر عملية معلقة.
ثم أعطيت مهلة من 5 ثوان والآن يعمل بشكل جيد. ولكن أنا بحاجة إلى إيجاد طريقة أفضل لتحديد هذه المشكلة حيث أن هذه القيمة مهلة يمكن أن تعتمد على موارد النظام وكمية من مدخلات التطبيق لديه لمعالجة.
لذا، سؤالي هو إذا كنا نقوم بإنشاء عملية باستخدام System. Diagnostics، لا أوس إنشاء مؤشر ترابط منفصل وجعله الموضوع الأساسي أو مؤشر ترابط واجهة المستخدم؟
أو هو إنشاء موضوع كلر الذي هو نفسه System. Threading. Thread؟
إذا استخدمنا موضوع تجمع لإنشاء مؤشر ترابط عامل، أن يكون هذا الخيار أفضل؟
هل يستخدم تجمع الترابط جدولة وضع المستخدم؟
نقدر مساعدتكم في هذا الشأن.
أنا بحاجة إلى معرفته عن ذلك لأنه إذا System. Diagnostics يخلق أيضا موضوع الخلفية أو عامل الموضوع، أي نقطة إنشاء موضوع منفصل مرة أخرى كما لن يكون هناك أي تغيير في نهاية اليوم.
ما هو الفرق بين التنفيذ أعلاه على إنشاء مؤشر ترابط الخلفية؟
كنت مربكا المواضيع الداخلية والخارجية إلى التطبيق الخاص بك. إذا كنت تستخدم ويتفوريكسيت على مؤشر ترابط واجهة المستخدم. فإنه سيتم حظر مؤشر ترابط واجهة المستخدم مما يجعلها غير مستجيبة. إذا كان هذا مشكلة، تفرخ العملية الجديدة في الحدث دوورك من باكغروندوركر. عند خروج العملية، سيتم تشغيل رونوركركومبليتيفنت، وتنبيه مؤشر ترابط واجهة المستخدم الخاص بك.
وضع علامة كجواب من قبل مين تشو فريق وحدات مايكروسوفت، مشرف الاثنين، 18 يوليو 2018 3:10 ص.
جميع الردود.
في انتظار حدث مع إنابليرايسينجيفنتس = كاذبة يعني أنك تستخدم ويتفوريكسيت كموقت. تعيينه إلى قيمة مناسبة.
في انتظار حدث مع إنابليرايسينجيفنتس = كاذبة يعني أنك تستخدم ويتفوريكسيت كموقت. تعيينه إلى قيمة مناسبة.
لقد أعطيت 5000 كقيمة وثابت المشكلة. قلبي هو أنها سوف تعمل مماثلة تحت مختلف موارد النظام، حجم المحتوى المدخلات الخ؟
ماذا سيحدث إذا لم يتم إنهاء العملية المرتبطة بنهاية الفاصل الزمني؟
ويندوز ليس نظام التشغيل في الوقت الحقيقي، لذلك أي توقيت سوف تعتمد على جدولة نظام التشغيل. من المفترض، و System. Timers. Timer هو الأكثر دقة.
& كوت؛ ماذا سيحدث إذا لم يتم إنهاء العملية المقترنة بحلول نهاية الفاصل الزمني؟ & كوت؛ لقد عطلت هذه الميزة. إذا كان هذا هو ما تحاول القيام به، تمكينه. إذا كنت لا تريد حظر مؤشر الترابط الذي استخدمته لبدء العملية، ابدأ تشغيله من مؤشر ترابط الخلفية. و باكغسروندوركر يكون مناسبا لهذا.
أنا بحاجة إلى معرفته عن ذلك لأنه إذا System. Diagnostics يخلق أيضا موضوع الخلفية أو عامل الموضوع، أي نقطة إنشاء موضوع منفصل مرة أخرى كما لن يكون هناك أي تغيير في نهاية اليوم.
ما هو الفرق بين التنفيذ أعلاه على إنشاء مؤشر ترابط الخلفية؟
أنا بحاجة إلى معرفته عن ذلك لأنه إذا System. Diagnostics يخلق أيضا موضوع الخلفية أو عامل الموضوع، أي نقطة إنشاء موضوع منفصل مرة أخرى كما لن يكون هناك أي تغيير في نهاية اليوم.
ما هو الفرق بين التنفيذ أعلاه على إنشاء مؤشر ترابط الخلفية؟
كنت مربكا المواضيع الداخلية والخارجية إلى التطبيق الخاص بك. إذا كنت تستخدم ويتفوريكسيت على مؤشر ترابط واجهة المستخدم. فإنه سيتم حظر مؤشر ترابط واجهة المستخدم مما يجعلها غير مستجيبة. إذا كان هذا مشكلة، تفرخ العملية الجديدة في الحدث دوورك من باكغروندوركر. عند خروج العملية، سيتم تشغيل رونوركركومبليتيفنت، وتنبيه مؤشر ترابط واجهة المستخدم الخاص بك.
وضع علامة كجواب من قبل مين تشو فريق وحدات مايكروسوفت، مشرف الاثنين، 18 يوليو 2018 3:10 ص.
تقوم ميكروسوفت بإجراء استطلاع عبر الإنترنت لفهم رأيك لموقع مسن على الويب. إذا اخترت المشاركة، سيتم تقديم الاستبيان عبر الإنترنت لك عند مغادرة موقع مسن على ويب.
معالجة مهلة ويتوفوريكسيت c #
قد يبدو هذا السؤال غريبا بعض الشيء ولكني أحاول تشغيل 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 ()، ولكن تم تعيينها إلى & كوت؛ & كوت ؛. لذلك هذا هو الإختراق وأنا حقا لا ترغب في استخدامه، لكنه يعمل من أجل التنفيذ الحالي.
تقوم ميكروسوفت بإجراء استطلاع عبر الإنترنت لفهم رأيك لموقع مسن على الويب. إذا اخترت المشاركة، سيتم تقديم الاستبيان عبر الإنترنت لك عند مغادرة موقع مسن على ويب.
لدي أداة يمكن أن يستغرق وقتا طويلا إلى حد ما لتنفيذ، أطول من مهلة الافتراضي من بويرشيل لبدء عملية 600 ثانية. لذلك أنا أحاول أن أجد وسيلة لزيادة هذا المهلة. إذا تم تشغيل شفرة الاختبار مثل هذا بدون مهلة محددة:
ثم ينتظر النص البرمجي بشكل صحيح لتشغيل الأمر والخروج:
بس U: \ ماي دوكومينتس \ ديفيلوبمنت \ بويرشيل & غ؛ . \ ping_test. ps1.
ولكن إذا حاولت إضافة مهلة إلى الأمر:
عملية بينغ لا يزال ينطلق، لكنه يسقط على الفور إلى البرنامج النصي بويرشيل وأحصل على هذا الإخراج:
بس U: \ ماي دوكومينتس \ ديفيلوبمنت \ بويرشيل & غ؛ . \ ping_test. ps1.
لذا، ماذا أفعل الخطأ هنا؟
الحجة ل system. diagnostic. process. waitforexit () بالميلي ثانية.
لقد طلبت منه الانتظار لمدة ثانية واحدة، ثم الخروج.
تم وضع علامة كجواب من قبل تيغر لي موظف ميكروسوفت الثلاثاء، 26 يوليو، 2018 2:01 ص.
تقوم ميكروسوفت بإجراء استبيان عبر الإنترنت لفهم رأيك لموقع تيشنيت على الويب. إذا اخترت المشاركة، فسيتم تقديم الاستبيان عبر الإنترنت عند مغادرة موقع تيشنيت على ويب.
معالجة مهلة ويتوفوريكسيت c #
لدي التعليمات البرمجية التالية في طلبي:
System. Diagnostics. Process بروك = نيو System. Diagnostics. Process ()؛
بمجرد استدعاء هذا من خلال تطبيق آخر عملية معلقة.
ثم أعطيت مهلة من 5 ثوان والآن يعمل بشكل جيد. ولكن أنا بحاجة إلى إيجاد طريقة أفضل لتحديد هذه المشكلة حيث أن هذه القيمة مهلة يمكن أن تعتمد على موارد النظام وكمية من مدخلات التطبيق لديه لمعالجة.
لذا، سؤالي هو إذا كنا نقوم بإنشاء عملية باستخدام System. Diagnostics، لا أوس إنشاء مؤشر ترابط منفصل وجعله الموضوع الأساسي أو مؤشر ترابط واجهة المستخدم؟
أو هو إنشاء موضوع كلر الذي هو نفسه System. Threading. Thread؟
إذا استخدمنا موضوع تجمع لإنشاء مؤشر ترابط عامل، أن يكون هذا الخيار أفضل؟
هل يستخدم تجمع الترابط جدولة وضع المستخدم؟
نقدر مساعدتكم في هذا الشأن.
أنا بحاجة إلى معرفته عن ذلك لأنه إذا System. Diagnostics يخلق أيضا موضوع الخلفية أو عامل الموضوع، أي نقطة إنشاء موضوع منفصل مرة أخرى كما لن يكون هناك أي تغيير في نهاية اليوم.
ما هو الفرق بين التنفيذ أعلاه على إنشاء مؤشر ترابط الخلفية؟
كنت مربكا المواضيع الداخلية والخارجية إلى التطبيق الخاص بك. إذا كنت تستخدم ويتفوريكسيت على مؤشر ترابط واجهة المستخدم. فإنه سيتم حظر مؤشر ترابط واجهة المستخدم مما يجعلها غير مستجيبة. إذا كان هذا مشكلة، تفرخ العملية الجديدة في الحدث دوورك من باكغروندوركر. عند خروج العملية، سيتم تشغيل رونوركركومبليتيفنت، وتنبيه مؤشر ترابط واجهة المستخدم الخاص بك.
وضع علامة كجواب من قبل مين تشو فريق وحدات مايكروسوفت، مشرف الاثنين، 18 يوليو 2018 3:10 ص.
جميع الردود.
في انتظار حدث مع إنابليرايسينجيفنتس = كاذبة يعني أنك تستخدم ويتفوريكسيت كموقت. تعيينه إلى قيمة مناسبة.
في انتظار حدث مع إنابليرايسينجيفنتس = كاذبة يعني أنك تستخدم ويتفوريكسيت كموقت. تعيينه إلى قيمة مناسبة.
لقد أعطيت 5000 كقيمة وثابت المشكلة. قلبي هو أنها سوف تعمل مماثلة تحت مختلف موارد النظام، حجم المحتوى المدخلات الخ؟
ماذا سيحدث إذا لم يتم إنهاء العملية المرتبطة بنهاية الفاصل الزمني؟
ويندوز ليس نظام التشغيل في الوقت الحقيقي، لذلك أي توقيت سوف تعتمد على جدولة نظام التشغيل. من المفترض، و System. Timers. Timer هو الأكثر دقة.
& كوت؛ ماذا سيحدث إذا لم يتم إنهاء العملية المقترنة بحلول نهاية الفاصل الزمني؟ & كوت؛ لقد عطلت هذه الميزة. إذا كان هذا هو ما تحاول القيام به، تمكينه. إذا كنت لا تريد حظر مؤشر الترابط الذي استخدمته لبدء العملية، ابدأ تشغيله من مؤشر ترابط الخلفية. و باكغسروندوركر يكون مناسبا لهذا.
أنا بحاجة إلى معرفته عن ذلك لأنه إذا System. Diagnostics يخلق أيضا موضوع الخلفية أو عامل الموضوع، أي نقطة إنشاء موضوع منفصل مرة أخرى كما لن يكون هناك أي تغيير في نهاية اليوم.
ما هو الفرق بين التنفيذ أعلاه على إنشاء مؤشر ترابط الخلفية؟
أنا بحاجة إلى معرفته عن ذلك لأنه إذا System. Diagnostics يخلق أيضا موضوع الخلفية أو عامل الموضوع، أي نقطة إنشاء موضوع منفصل مرة أخرى كما لن يكون هناك أي تغيير في نهاية اليوم.
ما هو الفرق بين التنفيذ أعلاه على إنشاء مؤشر ترابط الخلفية؟
كنت مربكا المواضيع الداخلية والخارجية إلى التطبيق الخاص بك. إذا كنت تستخدم ويتفوريكسيت على مؤشر ترابط واجهة المستخدم. فإنه سيتم حظر مؤشر ترابط واجهة المستخدم مما يجعلها غير مستجيبة. إذا كان هذا مشكلة، تفرخ العملية الجديدة في الحدث دوورك من باكغروندوركر. عند خروج العملية، سيتم تشغيل رونوركركومبليتيفنت، وتنبيه مؤشر ترابط واجهة المستخدم الخاص بك.
وضع علامة كجواب من قبل مين تشو فريق وحدات مايكروسوفت، مشرف الاثنين، 18 يوليو 2018 3:10 ص.
تقوم ميكروسوفت بإجراء استطلاع عبر الإنترنت لفهم رأيك لموقع مسن على الويب. إذا اخترت المشاركة، سيتم تقديم الاستبيان عبر الإنترنت لك عند مغادرة موقع مسن على ويب.
معالجة مهلة ويتوفوريكسيت c #
قد يبدو هذا السؤال غريبا بعض الشيء ولكني أحاول تشغيل 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 ()، ولكن تم تعيينها إلى & كوت؛ & كوت ؛. لذلك هذا هو الإختراق وأنا حقا لا ترغب في استخدامه، لكنه يعمل من أجل التنفيذ الحالي.
تقوم ميكروسوفت بإجراء استطلاع عبر الإنترنت لفهم رأيك لموقع مسن على الويب. إذا اخترت المشاركة، سيتم تقديم الاستبيان عبر الإنترنت لك عند مغادرة موقع مسن على ويب.
قد يبدو هذا السؤال غريبا بعض الشيء ولكني أحاول تشغيل 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