تبدأ عملية أسب نت ويتوفوريكسيت
تبدأ عملية أسب ويتفوريكسيت
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
انتظر حتى تنتهي العملية.
لدي تطبيق الذي لا.
لبدء تطبيق آخر "أبك". أريد أن تنتظر حتى ينتهي هذا التطبيق (عملية يموت) ومواصلة تنفيذ بلدي. كيف يمكنني فعل ذلك؟
قد يكون هناك حالات متعددة من تطبيق "أبك" قيد التشغيل في نفس الوقت.
أعتقد أنك تريد هذا فقط:
راجع صفحة مسن للطريقة. كما أن لديها الزائد حيث يمكنك تحديد مهلة، لذلك كنت لا يحتمل أن تنتظر إلى الأبد.
استخدام Process. WaitForExit؟ أو الاشتراك في الحدث Process. Exited إذا كنت لا تريد حظر؟ إذا كان هذا لا يفعل ما تريد، يرجى تعطينا المزيد من المعلومات حول الاحتياجات الخاصة بك.
أفعل ما يلي في طلبي:
هناك بعض الميزات الإضافية التي قد تجدها مفيدة.
يمكنك استخدام الانتظار للخروج أو يمكنك التقاط الخاصية هاسكسيتد وتحديث واجهة المستخدم الخاصة بك للحفاظ على المستخدم "أبلغ" (إدارة التوقعات):
مثال الاستخدام.
أنا حلها بهذه الطريقة:
أنا إعادة توجيه كل من المدخلات والمخرجات والخطأ وتناولت القراءة من الإخراج وتدفقات الخطأ. يعمل هذا الحل ل سك 7-8، سواء بالنسبة ويندوز 7 و ويندوز 8.
حاولت جعل الطبقة التي من شأنها حل مشكلتك باستخدام تيار غير متزامن قراءة، من خلال اتخاذ في حساب علامة بييرز، روب، ستيفيفاي الأجوبة. القيام بذلك أدركت أن هناك خلل المتعلقة غير متزامن الناتج إخراج تيار قراءة.
لا يمكنك القيام بذلك:
سوف تتلقى System. InvalidOperationException: لم تتم إعادة توجيه ستانداردوت أو لم تبدأ العملية حتى الآن.
ثم لديك لبدء إخراج غير متزامن قراءة بعد بدء العملية:
القيام بذلك، جعل حالة سباق لأن تيار الإخراج يمكن أن تتلقى البيانات قبل تعيينه إلى غير متزامن:
ثم بعض الناس يمكن أن أقول أن لديك فقط لقراءة تيار قبل تعيينه إلى غير متزامن. ولكن نفس المشكلة تحدث. سيكون هناك حالة سباق بين قراءة متزامن وتعيين تيار في وضع غير متزامن.
لا توجد طريقة للحصول على قراءة غير متزامنة آمنة من تيار الإخراج من عملية في الطريقة الفعلية "عملية" و "بروسيسستارتينفو" تم تصميم.
ربما كنت أفضل باستخدام قراءة غير متزامن مثل اقترح من قبل المستخدمين الآخرين لحالتك. ولكن يجب أن تكون على علم بأنك يمكن أن تفوت بعض المعلومات بسبب حالة السباق.
أي من الإجابات أعلاه هو القيام بهذه المهمة.
الحل روب معلقة وحل "مارك بييرز 'الحصول على استثناء التخلص منها. (حاولت" حلول "من الإجابات الأخرى).
لذلك قررت أن أقترح حل آخر:
هذا رمز تصحيحها ويعمل تماما.
أنا شيء أن هذا هو نهج بسيط وأفضل (نحن لسنا بحاجة أوتوريزيتيفنت):
كنت تواجه نفس المشكلة، ولكن السبب كان مختلفا. ومع ذلك فإنه يحدث تحت ويندوز 8، ولكن ليس تحت ويندوز 7. يبدو أن السطر التالي قد تسبب في المشكلة.
كان الحل عدم تعطيل وسشليكسكيوت. تلقيت الآن نافذة منبثقة شل، غير المرغوب فيها، ولكن أفضل بكثير من البرنامج في انتظار لا شيء معين أن يحدث. لذلك أضفت العمل التالي حول ذلك:
الآن الشيء الوحيد الذي يزعجني هو لماذا يحدث هذا تحت ويندوز 8 في المقام الأول.
المقدمة.
الإجابة المقبولة حاليا لا تعمل (يلقي استثناء) وهناك الكثير من الحلول ولكن لا يوجد رمز كامل. ومن الواضح أن هذا يضيع الكثير من الوقت الناس لأن هذا هو السؤال الشعبي.
الجمع بين إجابة مارك بييرز وإجابة كارول تيل كتبت الكود الكامل على أساس كيف أريد استخدام الأسلوب Process. Start.
لقد استخدمته لإنشاء الحوار التقدم حول أوامر جيت. هذه هي الطريقة التي استخدمتها:
من الناحية النظرية يمكنك أيضا الجمع بين ستدوت وستدير، ولكن لم اختبر ذلك.
وأنا أعلم أن هذا العشاء القديم ولكن بعد قراءة هذه الصفحة بأكملها لا شيء من الحلول كان يعمل بالنسبة لي، على الرغم من أنني لم أحاول محمد ريحان كما كان من الصعب قليلا على رمز لمتابعة، على الرغم من أنني أعتقد أنه كان على الطريق الصحيح . عندما أقول أنها لم تعمل هذا ليس صحيحا تماما، وأحيانا أنها سوف تعمل بشكل جيد، وأعتقد أنه هو شيء للقيام به مع طول الإخراج قبل علامة إوف.
على أي حال، كان الحل الذي عملت بالنسبة لي لاستخدام المواضيع المختلفة لقراءة ستانداردوتبوت و ستانداردرور وكتابة الرسائل.
نأمل أن يساعد هذا الشخص، الذي يعتقد أن هذا يمكن أن يكون من الصعب جدا!
الحلول الأخرى (بما في ذلك EM0 في) لا يزال مسدودا لتطبيقي، بسبب مهلات الداخلية واستخدام كل من ستانداردوتبوت و ستانداردرور من تطبيق ولدت. هنا هو ما عمل لي:
تحرير: إضافة التهيئة من ستارتينفو إلى نموذج التعليمات البرمجية.
هذه الوظيفة ربما عفا عليها الزمن ولكن اكتشفت السبب الرئيسي لماذا عادة تعليق هو بسبب تجاوز كومة ل ريديريكتستانداردوتبوت أو إذا كان لديك ريديريكتستانداردورور.
كما بيانات الإخراج أو بيانات الخطأ كبيرة، وسوف يسبب وقت تعليق لأنه لا يزال يعالج لمدة غير محددة.
C # اليوم.
السماح C # اليوم!
السماح C # اليوم!
كيفية تشغيل عملية الطفل في نفس وحدة التحكم في C #
غالبا ما أسمع أسئلة حول تشغيل عملية فرعية في وحدة تحكم الأصل. وقد تم الخلط بين الناس حول كيفية التأكد من أن عملية الطفل يستخدم نفس وحدة التحكم كما الأم.
في بعض الأحيان أنها محاولة لإعادة توجيه الإخراج القياسية فقط لتفريغها إلى وحدة التحكم عبر Console. Write. هذا هو الكثير من الجهد الذي ليس هناك حاجة إذا كان الشيء الوحيد المطلوب هو استخدام نفس وحدة التحكم - عدم التحقق من الإخراج.
الطريقة الصحيحة لتشغيل عملية الطفل في وحدة تحكم الأصل هو إعداد الخاصية أوشليكسكيوت فئة بروسيسستارتينفو. لننظر في المثال الذي ينفذ أمر الوقت. لماذا الوقت؟ لأنه يقرأ من المدخلات القياسية. بهذه الطريقة سوف تعرف وحدة التحكم التي يستخدمها.
يمكنك أن ترى أن عملية الطفل فتح وحدة تحكم جديدة.
هذا ليس ما أردنا. تركنا القيمة الافتراضية ل أوسشليكسكيوت، وهو صحيح. وهذا يعني أنه سيتم استخدام قذيفة لعملية الطفل. استخدام قذيفة يعني أنه سيتم إنشاء وحدة تحكم جديدة.
دعونا نقلب قيمة أوشليكسكيوت إلى فالس.
هذه المرة يتم استخدام وحدة تحكم واحدة فقط.
هذا كل ما هو مطلوب لإعادة توجيه جميع تيارات الإدخال / الإخراج إلى وحدة تحكم الأم.
مزايا استخدام قذيفة لعمليات الطفل.
هناك بعض الفوائد من استخدام قذيفة تنفيذ. يمكنك بدء تشغيل أي مستند يحتوي على إجراء مفتوح مسجل لنوع الملف الخاص به. على سبيل المثال يمكنك بدء تشغيل مستند نصي وسيتم فتح المفكرة. ولكن عليك أن تتذكر أن المدخلات / الإخراج تيارات لن يتم توجيهها إلى الآباء وحدة التحكم بهذه الطريقة.
Process. WaitForExit ()
إذا لم pstart. HasExited ثم.
بينما لا pStart. HasExited ()
إذا pStart. StartTime & لوت؛ Now. AddSeconds (120) ثم.
فاسيبوك تويتر لينكيدين إكسيرتس-إكسهانج / كيستيونس / 23298651 / بروسيس-WaitForExit. html كوبي.
لطرح الأسئلة وإيجاد الحلول.
مشاركة مميزة.
أداة مجانية: حاسبة الشبكة الفرعية.
آلة حاسبة الشبكة الفرعية تساعدك على تصميم الشبكات عن طريق أخذ عنوان إب وقناع الشبكة والعودة المعلومات مثل الشبكة وعنوان البث، ومجموعة المضيف.
إذا كنت تواجه مشكلة مشابهة، فيرجى طرح سؤال ذي صلة.
إدارة الوثائق الطابعات والماسحات الضوئية وثيقة التصوير البرمجيات - صور وصور أخرى أدوبي أكروبات، صور / برامج الرسومات، الأمن، * المسح الضوئي، * بدف.
الدورات المقترحة.
سأل 617 عضوا الأسئلة وتلقوا حلول شخصية في 7 أيام الماضية.
الانضمام إلى المجتمع من 500،000 المهنيين التكنولوجيا وطرح أسئلتك.
تتمتع إجابتك؟
الانضمام إلى مجتمعنا لمزيد من الحلول أو لطرح الأسئلة.
استخدام process. Start في تطبيق أسب / C #.
لطرح الأسئلة وإيجاد الحلول.
myProcess. StartInfo. UseShe ليكسكيوت = فالس.
myProcess. StartInfo. Create نويندو = ترو.
myProcess. StartInfo. Redire كتستاندارد إنبوت = ترو.
myProcess. StartInfo. Redire كتستاندارد أوتبوت = ترو.
myProcess. StartInfo. Redire كتستاندارد إرور = ترو.
ديم سين كما ستريموريتر = myProcess. StandardInput.
ديم سوت كما سترمريدر = myProcess. StandardOutput.
ديم سير كما سترمريدر = myProcess. StandardError.
"تمت معالجة الطلب بحلول الوقت الذي أصدر واحدة جديدة.
sIn. Write (& كوت؛ سد ويندوز & كوت؛ & أمب؛ System. Environment. NewLine)
'. والخطوط أدناه سيعود أي أخطاء، إذا كان هناك أي!
ديم سترورورس أس سترينغ = sErr. ReadToEnd ()
إذا strRrrors. Length & غ؛ 0 ثم.
مشاركة مميزة.
أداة مجانية: ميناء الماسح الضوئي.
تحقق من الموانئ المفتوحة للعالم الخارجي. يساعد على التأكد من أن قواعد الجدار الناري تعمل على النحو المنشود.
إذا كنت تواجه مشكلة مشابهة، فيرجى طرح سؤال ذي صلة.
الدورات المقترحة.
طلب 618 عضوا الأسئلة وتلقوا حلول شخصية في الأيام السبعة الماضية.
الانضمام إلى المجتمع من 500،000 المهنيين التكنولوجيا وطرح أسئلتك.
تتمتع إجابتك؟
الانضمام إلى مجتمعنا لمزيد من الحلول أو لطرح الأسئلة.
Comments
Post a Comment