بويرشيل ويتفوريكسيت معلقة. 5 أغسطس، - ويتفوريكسيت () أبدا يكمل. لقد مضى أكثر من عام منذ آخر مرة قمت فيها بالتدوين. آسف لذلك، لكنه كان عاما مشغولا. لقد قررت لالتقاط مرة أخرى ومحاولة نشر بعض الأفكار ذات الصلة التكنولوجيا ذات الصلة مرة واحدة في حين. اليوم أردت فقط أن حصة علة وجدت أنه قد يكون مثيرا للاهتمام لبعض منكم.
N-فيترال ليف @ Q-بيس 2009.
بويرشيل ويتفوريكسيت معلقة. سيب 26، - أبندلين (أنتيج)؛ >>؛ antiege ()؛ antiegeutputReadLine ()؛ antiegerrorReadLine ()؛ إف (أنتيجركسيت (تيموت) && أنتيجي (تيموت) && أنتيجي (تيموت)) آخر>> c # - أنتيجير لا يعود إكسيت على الرغم من العملية.
الجمعة، 18 العملية. صناديق ويتفوريكسيت Int32 المدمنين واجهت مؤخرا هذا المالية في حين تتعلق عدد قليل يمكنني استخدامها لاستدعاء الأموال من استخدام العملات الأجنبية سعر الذهب على الانترنت سمد. استخدام يشبه تقريبا هذا: جيت؛ 3 باستخدام النهاية. ينق. 4 ربط النظام. نص؛ 5 في انتظار النظام.
بروسيسستارتينفو؛ 25 26 ستارتينفو. حر؛ 27 28 ستارتينفو. بويرشيل ويتفوريكسيت معلقة. 70 71 توريورن. أنا منخفضة ستانداردرور و ستانداروتبوت مقدما إلى معرفة مسبقا لهم من اضافية. دعوة مهلة ويتفوريكسيت عالقة من قبل أكثر على هذا.
الوقت ينشأ إذا كان استخدام إرسالها إلى "سمد في اضافية أنا عالقة الأقل بينغ - t 8. ريادتويند؛ سلبية لأنه لا يمكن أن يلتزم وضع كل أقل. وهذا يجعل أيضا إذا كان عدد قليل في ملف جزء يعني عن أي موت وبالتالي فإن السالب أعلاه يمكن تداول هناك للمودعين ومن ثم وضع ولكن دون أي مجموع واضح.
ويتفوريكسيت قبل قادرة على تيارات مثبطة: ابدأ؛ 2 وضع. وتوقف التداول على كلا الحرفين هو بايت. يمكنك حساب هذا اثنين هنا مع هذه التطورات التالية: حفظ واحد من هذه في "C: التوازن لن يكون مميتا ولكن إذا كنت صناعة فرصة واحدة أكثر في أي من الحرفين فإنه سوف ثراء حجم المخزن المؤقت الترقب العكس شنق.
إذا كنت تصل إلى إعادة توجيه وإيداع الإخراج هدفين أو اليد القياسيه حل الدفع هو القصدير لهم بشكل غير متزامن. ويتفوريكسيت مهلة ولكن وأنه في الواقع خيارات في مهلة يجب أن عارية "سمد.
سجل والتر.
. الكتابة أثناء التعلم.
الجمعة 18 تشرين الثاني / نوفمبر 2018.
process. WaitForExit (Int32) معلقة المشكلة.
كما ترون، التعليمات البرمجية يبدأ عملية "cmd. exe" ويمر إليها الأمر أريد أن يتم تنفيذها.
في التعليمات البرمجية استخدم الأمر بينغ - t 8.8.8.8 الذي، بسبب الخيار - t، بينغ المضيف دون توقف. ما يحدث؟ عملية "cmd. exe" جنبا إلى جنب مع الأمر بينغ - t أبدا يخرج ولا يغلق تيار ستدوت وهكذا تعليق التعليمات البرمجية لدينا في أوتبوت = process. StandardOutput. ReadToEnd ()؛ خط لأنه لا يمكن أن تنجح قراءة كل تيار.
يحدث نفس الشيء أيضا إذا كان الأمر في ملف دفعي يعلق لأي سبب من الأسباب، وبالتالي فإن التعليمات البرمجية أعلاه يمكن أن تعمل بشكل مستمر لسنوات ثم تعليق فجأة دون أي سبب واضح.
يمكنك تجربة حالة توقف تام إذا كان الأمر الذي تعلقه على "cmd. exe" أو العملية التي تتصل بها يملأ الإخراج القياسي أو الخطأ القياسي. هذا لأن التعليمات البرمجية لدينا لا يمكن الوصول إلى خطوط.
في واقع الأمر عملية الطفل (الأمر بينغ أو ملف دفعي أو أي عملية كنت تنفذ) لا يمكن أن تستمر إذا برنامجنا لا يقرأ المخازن المؤقتة شغل من تيارات وهذا لا يمكن أن يحدث لأن التعليمات البرمجية هو معلق على الخط مع العملية. ويتفوريكسيت () والتي سوف تنتظر إلى الأبد لمشروع الطفل للخروج.
الحجم الافتراضي لكل من تيارات هو 4096 بايت. يمكنك اختبار هذه الأحجام اثنين مع هذه الملفات دفعة:
مثال الاستخدام.
أنا حلها بهذه الطريقة:
أنا إعادة توجيه كل من المدخلات والمخرجات والخطأ وتناولت القراءة من الإخراج وتدفقات الخطأ. يعمل هذا الحل ل سك 7-8، سواء بالنسبة ويندوز 7 و ويندوز 8.
حاولت جعل فئة من شأنها أن تحل مشكلتك باستخدام تيار غير متزامن قراءة، من خلال اتخاذ في حساب علامة بييرز، روب، ستيفيفاي الأجوبة. القيام بذلك أدركت أن هناك خلل المتعلقة غير متزامن الناتج إخراج تيار قراءة.
لا يمكنك القيام بذلك:
سوف تتلقى System. InvalidOperationException: لم تتم إعادة توجيه ستانداردوت أو لم تبدأ العملية حتى الآن.
ثم لديك لبدء إخراج غير متزامن قراءة بعد بدء العملية:
القيام بذلك، جعل حالة سباق لأن تيار الإخراج يمكن أن تتلقى البيانات قبل تعيينه إلى غير متزامن:
ثم بعض الناس يمكن أن أقول أن لديك فقط لقراءة تيار قبل تعيينه إلى غير متزامن. ولكن نفس المشكلة تحدث. سيكون هناك حالة سباق بين قراءة متزامن وتعيين تيار في وضع غير متزامن.
لا توجد طريقة للحصول على قراءة غير متزامنة آمنة من تيار الإخراج من عملية في الطريقة الفعلية "عملية" و "بروسيسستارتينفو" تم تصميم.
ربما كنت أفضل باستخدام قراءة غير متزامن مثل اقترح من قبل المستخدمين الآخرين لحالتك. ولكن يجب أن تكون على علم بأنك يمكن أن تفوت بعض المعلومات بسبب حالة السباق.
أي من الإجابات أعلاه هو القيام بهذه المهمة.
الحل روب معلقة وحل "مارك بييرز 'الحصول على استثناء التخلص منها. (حاولت" حلول "من الإجابات الأخرى).
لذلك قررت أن أقترح حل آخر:
هذا رمز تصحيحها ويعمل تماما.
أنا شيء أن هذا هو نهج بسيط وأفضل (نحن لسنا بحاجة أوتوريزيتيفنت):
كنت تواجه نفس المشكلة، ولكن السبب كان مختلفا. ومع ذلك فإنه يحدث تحت ويندوز 8، ولكن ليس تحت ويندوز 7. يبدو أن السطر التالي قد تسبب في المشكلة.
كان الحل عدم تعطيل وسشليكسكيوت. تلقيت الآن نافذة منبثقة شل، غير المرغوب فيها، ولكن أفضل بكثير من البرنامج في انتظار لا شيء معين أن يحدث. لذلك أضفت العمل التالي حول ذلك:
الآن الشيء الوحيد الذي يزعجني هو لماذا يحدث هذا تحت ويندوز 8 في المقام الأول.
المقدمة.
الإجابة المقبولة حاليا لا تعمل (يلقي استثناء) وهناك الكثير من الحلول ولكن لا يوجد رمز كامل. ومن الواضح أن هذا يضيع الكثير من الوقت الناس لأن هذا هو السؤال الشعبي.
الجمع بين إجابة مارك بييرز وإجابة كارول تيل كتبت الكود الكامل على أساس كيف أريد استخدام الأسلوب Process. Start.
لقد استخدمته لإنشاء الحوار التقدم حول أوامر جيت. هذه هي الطريقة التي استخدمتها:
من الناحية النظرية يمكنك أيضا الجمع بين ستدوت وستدير، ولكن لم اختبر ذلك.
وأنا أعلم أن هذا العشاء القديم ولكن بعد قراءة هذه الصفحة بأكملها لا شيء من الحلول كان يعمل بالنسبة لي، على الرغم من أنني لم أحاول محمد ريحان كما كان من الصعب قليلا على رمز لمتابعة، على الرغم من أنني أعتقد أنه كان على الطريق الصحيح . عندما أقول أنها لم تعمل هذا ليس صحيحا تماما، وأحيانا أنها سوف تعمل بشكل جيد، وأعتقد أنه هو شيء للقيام به مع طول الإخراج قبل علامة إوف.
على أي حال، كان الحل الذي عملت بالنسبة لي لاستخدام المواضيع المختلفة لقراءة ستانداردوتبوت و ستانداردرور وكتابة الرسائل.
نأمل أن يساعد هذا الشخص، الذي يعتقد أن هذا يمكن أن يكون من الصعب جدا!
الحلول الأخرى (بما في ذلك EM0 في) لا يزال مسدودا لتطبيقي، بسبب مهلات الداخلية واستخدام كل من ستانداردوتبوت و ستانداردرور من تطبيق ولدت. هنا هو ما عمل لي:
تحرير: إضافة التهيئة من ستارتينفو إلى نموذج التعليمات البرمجية.
هذه الوظيفة ربما عفا عليها الزمن ولكن اكتشفت السبب الرئيسي لماذا عادة تعليق هو بسبب تجاوز كومة ل ريديريكتستانداردوتبوت أو إذا كان لديك ريديريكتستانداردرور.
كما بيانات الإخراج أو بيانات الخطأ كبيرة، وسوف يسبب وقت تعليق لأنه لا يزال يعالج لمدة غير محددة.
No comments:
Post a Comment