كيف دائم هو ويتفوريكسيت (). أعني أن هناك أي شيء بديل يمكن القيام به لكسر الانتظار وإلا سوف تشغيل بلدي موضوع في وظيفة منفصلة، والسيطرة عليها من المتغيرات العالمية. السبب - مؤشر ترابط 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، تيشتالز. جميع الحقوق محفوظة. إيلينا: شكرا لإجابتك. هناك بعض الملاحظات في الجزء السفلي من مستند مسن هذا (msdn. microsoften - أوسليبراريهليب) التي تحذر حول ديادلوكس المحتملة إذا قرأت إلى نهاية كل من ستدوت إعادة توجيه و ستدر تيارات بشكل متزامن. IT39s من الصعب معرفة ما إذا كان الحل الخاص بك هو عرضة لهذه المسألة. أيضا، يبدو أنك تقوم بإرسال العملية 39 ستدوتستدر إخراج الحق في العودة كمدخلات. لماذا ا. ) نداش ماتيو بيات سيب 26 16 في 4:42 هذا هو أكثر حداثة تنتظر، مكتبة مكتبة موازية تبل (تبل) حل قائم على 4.5 وما فوق. مثال الاستخدام أجاب التنفيذ أكتوبر 5 16 في 10:54 أنا شيء أن هذا هو نهج بسيط وأفضل (نحن لسنا بحاجة أوتوريزيتيفنت): أجاب 14 يونيو 12 في 14:29 صحيح، ولكن mustn39t كنت تقوم به. فيلنام المسار quggsci. exequot كوت لوت obeycommand. txtquot لتبسيط التعليمات البرمجية الخاصة بك أو ربما شيء ما يعادل الأمر كوتشو كوت المسار quggsci. exequot إذا كنت حقا don39t تريد استخدام ملف obeycommand. txt منفصل. نداش اميت نيدو يونيو 4 13 في 22:03 الحل الخاص بك لا تحتاج أوتوريزيتيفنت ولكن لك الاستطلاع. عند إجراء الاستطلاع بدلا من استخدام الحدث (عندما تكون متاحة) ثم كنت تستخدم وحدة المعالجة المركزية دون سبب والتي تشير إلى أنك مبرمج سيئة. الحل الخاص بك هو سيء حقا بالمقارنة مع الآخر باستخدام أوتوريزيتيفنت. (لكنني لم أعطيك -1 لأنك حاولت المساعدة). نداش إيريك أويليت نوف 7 14 في 18:38 كنت تواجه نفس المشكلة، ولكن السبب كان مختلفا. ومع ذلك فإنه يحدث تحت ويندوز 8، ولكن ليس تحت ويندوز 7. يبدو أن السطر التالي قد تسبب في المشكلة. كان الحل عدم تعطيل وسشليكسكيوت. تلقيت الآن نافذة منبثقة شل، غير المرغوب فيها، ولكن أفضل بكثير من البرنامج في انتظار لا شيء معين أن يحدث. لذلك أضفت العمل التالي حول ذلك: الآن الشيء الوحيد الذي يزعجني هو لماذا يحدث هذا تحت ويندوز 8 في المقام الأول. أجاب 13 يناير 15 في 10:35 حاولت أن تجعل فئة من شأنها أن تحل مشكلتك باستخدام تيار غير متزامن قراءة، من خلال الأخذ في الاعتبار مارك بييرز، روب، ستيفيفاي الأجوبة. القيام بذلك أدركت أن هناك خلل المتعلقة غير متزامن الناتج إخراج تيار قراءة. لا يمكنك القيام بذلك: سوف تتلقى System. InvalidOperationException. لم تتم إعادة توجيه ستانداردوت أو لم تبدأ العملية بعد. ثم عليك أن تبدأ الإخراج غير المتزامن قراءة بعد بدء العملية: القيام بذلك، وجعل حالة سباق لأن تيار الإخراج يمكن أن تتلقى البيانات قبل تعيينه إلى غير متزامن: ثم بعض الناس يمكن أن أقول أن لديك فقط لقراءة تيار قبل تعيينه إلى غير متزامن. ولكن نفس المشكلة تحدث. سيكون هناك حالة سباق بين قراءة متزامن وتعيين تيار في وضع غير متزامن. لا توجد طريقة للحصول على قراءة غير متزامنة آمنة من تيار الإخراج من عملية في الطريقة الفعلية وقد تم تصميم عملية و بروسيسستارتينفو. ربما كنت أفضل باستخدام قراءة غير متزامن مثل اقترح من قبل المستخدمين الآخرين لحالتك. ولكن يجب أن تكون على علم بأنك يمكن أن تفوت بعض المعلومات بسبب حالة السباق.
No comments:
Post a Comment