Waitforexit - ج - المهلة


مرحبا، أنا تطوير تطبيق وحدة التحكم C الذي يبدأ سطر الأوامر ويحصل على بعض البيانات من خلال أمر آخر (وهو غير ذي صلة في هذه المناقشة). في نهاية المطاف سوف تحصل على بعض البيانات في سطر الأوامر وأنا فقط بحاجة فقط السطر الأخير من ذلك. لقد استخدمت التعليمات البرمجية التالية: process. StartInfo. FileName كوتسم. إكسكوت process. StartInfo. RedirectStandardInput ترو Process. StartInfo. RedirectStandardOutput ترو لقد استخدمت عملية. StandardInput. WriteLine لكتابة الأوامر أحتاج إلى وحدة التحكم. ولكن إذا كان process. StartInfo. RedirectStandardOutput صحيح، أنا لا تحصل على الإخراج المطلوب باستخدام العبارة process. StandardOutput. ReadToEnd (). سبليت (n) في حين أن خيار ريادلين يعمل بشكل جيد وأنا الحصول على السطر الأول من النص المعروض. منذ كل مرة البيانات التي أحصل على وحدة التحكم يختلف، لا أستطيع أن هاردكود أي لواكتيون محددة من حيث الحصول على بلدي الإخراج. حتى إذا وضعت ساعة على البيان process. StandardOutput. ReadToEnd () تقسيم (n) أنا الحصول على استثناء مهلة وظيفة. يرجى مساعدتي مع هذه المشكلة. الخميس، أغسطس 07، 2008 5:44 آم أنا نسخت رمز مانجوس. Myprocesss cutcmd. exequot. أولا، أرسلت أمر كتيبكونفيغوت، مع ريادتويند () مهلة. حاول القراءة في كتل، فشلت أيضا. حاول ويتفورينبوتيدل ()، ولكن نسيت سمد لا يوجد لديه واجهة رسومية، فشلت أيضا. لذلك كنت في حاجة إلى سمد لإنهاء تيار إذا أردت أن تقرأ من أي وقت مضى. طيب حتى الخروج لذلك حاولت إرسال جميع الأوامر بلدي، بما في ذلك الأمر خروج أولا، ثم القراءة. sIn. WriteLine (كوتيبكونفيغوت) sIn. WriteLine (كوتيبكونفيغ ألكوت) sIn. WriteLine (كوتكسيتكوت) سترينغبوت sOut. ReadToEnd () يعمل مثل السحر. بلدي ريادتويند () بإرجاع سلسلة في نصف ثانية، وحصلت على كل المعلومات التي أحتاجها. -) يمكن أن يكون هذا من أي مساعدة لك، غاوري من غير المحتمل أن نفعل، والمستحيل يستغرق سوى وقتا أطول قليلا. - ستيفن باركر علامة كجواب من قبل جاك 321 الاثنين، 11 أغسطس 2008 5:44 ص الخميس، أغسطس 07، 2008 7:51 آم ريادتويند () هو عرضة للتسبب في طريق مسدود، وخصوصا عند رمزه بعد ويتفوريكسيت () أو إرسال الكثير من المدخلات. عملية كتابة ناتجها إلى المخزن المؤقت، أن العازلة ليست كبيرة جدا (2KB أعتقد). انها لا تقرأ محتويات هذا المخزن المؤقت، ويقول ويديث ريادلين ()، فإن عملية المماطلة، والانتظار لتفريغ المخزن المؤقت. البرنامج الخاص بك بدوره سوف المماطلة منذ ويتفوريكسيت () لن يعود أبدا أو ورادلين () الدعوة المماطلة منذ العملية لم تعد قراءة الإدخال. إذا كان هذا السيناريو الخاص بك، ستحتاج إلى قراءة غير متزامن مع بيجينأوتوبترادلين (). هانز باسانت. تم وضع علامة كجواب من قبل جاك 321 الاثنين، 11 أغسطس 2008 5:44 ص الخميس، أغسطس 07، 2008 12:13 م جميع الردود تحتاج أيضا إلى تعيين Process. StartInfo. UseShellExecute إلى فالس. علامة كما الجواب من قبل جاك 321 الاثنين، 11 أغسطس 2008 5:43 ص ما سبق هو إجابة قياسية لطيفة جدا، ومع ذلك. أنا لا أعتقد أن كوتكمكوت ينتهي تيار. لا يوجد شيء يتم إرسالها من مربع سمد للإشارة إلى أن تيار انتهت. فكر في صفحة ويب تقوم بتحميلها، بمجرد أن يصل رمز هتمل بأكمله إلى جهاز الكمبيوتر الخاص بك، يتم تيار. نفسه مع قراءة ملف، بمجرد الوصول إلى الحرف الأخير، ويتم تيار. ولكن مع كمد، تيار ليس كوتدونيكوت. انها تنتظر فقط لإدخال جديد، ثم إذا كنت تعطيه أمر آخر، سيكون لديك الانتاج مرة أخرى. هم يبدو لي أن تواجه مشكلة في التعبير عن نفسي في اللغة الإنجليزية مرة أخرى، اعتذاري. على أي حال، أنا لا أعتقد ثيريس أي شيء يمكنك القيام به لاستخدام ريادتويند () على كمد الإخراج تيار، إلا إذا كنت إرساله الأمر كوتكسيتكوت. هل حاولت الجمع بين ريادلين () مع. تحليل الخط (أي هل تحصل على خطوط فارغة)، أو ب. الأمر process. WaitForIddleInput () لا يمكن أن نفعل، المستحيل يستغرق وقتا أطول قليلا. - ستيفن باركر الخميس، أغسطس 07، 2008 7:35 آم في حال كنت تقوم بتشغيل عملية سمد. هل ريميبر لكتابة كوتكسيتكوت في تيار المدخلات الخميس، أغسطس 07، 2008 7:51 ص لذلك أنا نسخ رمز مانجوس. Myprocesss cutcmd. exequot. أولا، أرسلت أمر كتيبكونفيغوت، مع ريادتويند () مهلة. حاول القراءة في كتل، فشلت أيضا. حاول ويتفورينبوتيدل ()، ولكن نسيت سمد لا يوجد لديه واجهة رسومية، فشلت أيضا. لذلك كنت في حاجة إلى سمد لإنهاء تيار إذا أردت أن تقرأ من أي وقت مضى. طيب حتى الخروج لذلك حاولت إرسال جميع الأوامر بلدي، بما في ذلك الأمر خروج أولا، ثم القراءة. sIn. WriteLine (كوتيبكونفيغوت) sIn. WriteLine (كوتيبكونفيغ ألكوت) sIn. WriteLine (كوتكسيتكوت) سترينغبوت sOut. ReadToEnd () يعمل مثل السحر. بلدي ريادتويند () بإرجاع سلسلة في نصف ثانية، وحصلت على كل المعلومات التي أحتاجها. -) يمكن أن يكون هذا من أي مساعدة لك، غاوري من غير المحتمل أن نفعل، والمستحيل يستغرق سوى وقتا أطول قليلا. - ستيفن باركر علامة كجواب من قبل جاك 321 الاثنين، 11 أغسطس 2008 5:44 ص الخميس، أغسطس 07، 2008 7:51 آم ريادتويند () هو عرضة للتسبب في طريق مسدود، وخصوصا عند رمزه بعد ويتفوريكسيت () أو إرسال الكثير من المدخلات. عملية كتابة ناتجها إلى المخزن المؤقت، أن العازلة ليست كبيرة جدا (2KB أعتقد). انها لا تقرأ محتويات هذا المخزن المؤقت، ويقول ويديث ريادلين ()، فإن عملية المماطلة، والانتظار لتفريغ المخزن المؤقت. البرنامج الخاص بك بدوره سوف المماطلة منذ ويتفوريكسيت () لن يعود أبدا أو ورادلين () الدعوة المماطلة منذ العملية لم تعد قراءة الإدخال. إذا كان هذا السيناريو الخاص بك، ستحتاج إلى قراءة غير متزامن مع بيجينأوتوبترادلين (). هانز باسانت. تم وضع علامة كجواب من قبل جاك 321 الاثنين 11 أغسطس 2008 5:44 ص الخميس، أغسطس 07، 2008 12:13 م تجري ميكروسوفت استطلاعا عبر الإنترنت لفهم رأيك لموقع مسن على الويب. إذا اخترت المشاركة، سيتم تقديم الاستبيان عبر الإنترنت لك عند مغادرة موقع مسن على ويب. هل ترغب في المشاركة هو دائم هو ويتفوريكسيت (). أعني أن هناك أي شيء بديل يمكن القيام به لكسر الانتظار وإلا سوف تشغيل بلدي موضوع في وظيفة منفصلة، ​​والسيطرة عليه من المتغيرات العالمية. السبب - مؤشر ترابط CMD. EXE، مع تطبيق وحدة التحكم قيد التشغيل، ونحن بحاجة إلى إلغاء من قبل موضوع تشغيل مسارها. هنا هو ما لدينا: بروسيسستارتينفو يسي جديد بروسيسستارتينفو (quCMD. EXEquot، الاستعلام) psi. UseShellExecute استخدام شيليكسيك psi. RedirectStandardOutput ستدوت psi. CreateNoWindow نوويندو هبروك عملية جديدة () هبروك process. Start (يسي) hbProc. WaitForExit () حسنا، هل يمكن استخدام: بينما (hbProc. WaitForExit (سوميتيميوت)) إذا (شولدكانسل) كسر في 19 سبتمبر، 5:15 صباحا، كوتارك Gravellquot ltmarc. grav. كتب غ: غ ويل، يو كان وس: غ غ وايل (hbProc. WaitForExit (سوميتيميوت)) غ إذا كان (شولدكانسل) برياك غ غ غ غ مارك (ملاحظة، ليس هناك سبب لاستدعاء كل من العملية الجديدة () وعملية (بدء التشغيل) أو يمكنك استخدام: هبروك عملية جديدة () hbProc. EnableRaisingEvents صحيح hbProc. Exited جديد إيفنتهاندلر (فونكتيونتوكالافتربروسيت) hbProc. StartInfo يسي hbProc. Start () موضوع آخر - على تريد إلغاء الحدث: هبروك - إيفنثاندلر جديد ( فونكتيونتوكالافتربروسيت) في كلتا الحالتين، فقط أن تكون على بينة من حالة السباق المحتملة بين عملية الخروج والرغبة في إلغاء الانتظار في 19 سبتمبر، 4:11 صباحا، أليستير جورج لتنون xtra. co. nzgt كتب: غ كم هو دائم ويتفوريكسيت () يعني أي شيء بديل غ يمكن القيام به لكسر الانتظار وإلا سيتم تشغيل غ مؤشر الترابط الخاص بي في وظيفة منفصلة، ​​والتحكم بها من قبل المتغيرات العالمية غ السبب - مؤشر ترابط CMD. EXE، مع وحدة التحكم تشغيل التطبيق، والتي نحن غ تحتاج إلى إلغاء من قبل موضوع تشغيل كورس لها ه. غ هنا هو ما لدينا: غ بروسيسستارتينفو يسي نيو غ بروسيسستارتينفو (كوتسمد. إكسكيوت، الاستعلام) غ psi. UseShellExecute وسشليكسيك غ psi. RedirectStandardOutput ستدوت غ psi. CreateNoWindow نوويندو غ هبروك عملية جديدة () غ هبروك process. Start (يسي) غ hbProc. WaitForExit () غ غ شكرا، غ أليستير. يمكنك إما قتل موضوع تشغيل ويتفوريكسيت () أو استخدام الزائد الذي يسمح لك لتحديد مهلة ويتفوريكسيت (إنت مستوايت). إذا قمت بتشغيله في مؤشر ترابط منفصل وقتله أنت ذاهب للحصول على استثناء توقف. قد ترغب في التأكد من أن العملية التي بدأتها لا تزال قيد التشغيل (إذا كانت تقتلها). غ يمكنك إما قتل مؤشر الترابط تشغيل ويتفوريكسيت () أو استخدام التحميل الزائد غ الذي يسمح لك بتحديد مهلة ويتفوريكسيت (إنت غ مستويت). إذا قمت بتشغيله في مؤشر ترابط منفصل وقتله أنت غ سوف تحصل على استثناء توقف. قد تحتاج إلى التأكد من أن عملية غ التي بدأتها لا تزال قيد التشغيل (إذا كانت تقتلها). غ شكرا الرجال مع الاقتراحات التي هي مفيدة. سوف ينصح بالخيار الأفضل. آل. كوبيرايت كوبي 2005-2016، تيشتالز. كل الحقوق محفوظة.

Comments