تحليل Waitforexit
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
كيفية استخدام Process. WaitForExit.
أنا استدعاء التطبيق الجزء الثالث الذي "أحيانا" يعمل في ف (انها وف استضافت النفس). ولكن في بعض الأحيان سوف 3rd الطرف التطبيق شنق إلى الأبد، لذلك لقد أضفت الموقت 90 ثانية لذلك. المشكلة هي، كيف أعرف ما إذا كان الوقت مهلة؟
يبدو الرمز كما يلي:
ما أود القيام به هو شيء من هذا القبيل.
تحقق من قيمة طريقة العودة - msdn. microsoft/en-us/library/ty0d8k56.aspx - إذا انتهت المهلة، فإنه سيعود خطأ.
كانت هناك مشاكل معروفة في الماضي حيث التطبيقات تجميد عند استخدام ويتفوريكسيت.
Diagnostics. Process] :: ابدأ ($ StartInfo).WaitForExit.
Diagnostics. Process] :: ابدأ ($ StartInfo).WaitForExit.
باستخدام ويندوز فيستا x64 بويرشيل النصي. تريد إطلاق برنامج في حلقة وانتظر حتى للخروج، لديها الكثير من المعلمات، مع الحجج طول متغير.
hlds. exe - console - insecure - game svencoop4 - port 27025 - noipx - num_edicts 4096 + تسجيل الدخول + ماكسبلايرس 12 + خريطة أوسبري.
. \ hlds. exe - console - insecure - game svencoop4 - port 27025 - noipx - num_edicts 4096 + تسجيل الدخول + ماكسبلايرس 12 + خريطة أوسبري | خارج فارغة.
$ StartInfo. Arguments = & كوت؛ - console + ماب c1a1 - game svencoop4 & كوت؛
إعادة: Diagnostics. Process] :: بدء ($ ستارتينفو).WaitForExit.
منتديات فيستا هو موقع ويب مستقل ولم يؤذن،
برعاية، أو الموافقة على خلاف ذلك من قبل شركة مايكروسوفت.
"ويندوز فيستا"، و أورب ستارت، والمواد ذات الصلة هي علامات تجارية لشركة مايكروسوفت.
تحليل Waitforexit
بديل واحد يمكن القيام به لكسر الانتظار وإلا سوف تشغيل بلدي موضوع.
في وظيفة منفصلة، والسيطرة عليها من المتغيرات العالمية.
السبب - موضوع CMD. EXE، مع تطبيق وحدة التحكم قيد التشغيل، ونحن.
تحتاج إلى إلغاء من قبل موضوع تشغيل مسارها.
هنا هو ما لدينا:
بروسيسستارتينفو يسي = نيو.
هبروك = نيو بروسيس ()؛
وGT. حسنا، يمكنك استخدام:
hbProc. Exited + = جديد إيفنثاندلر (فونكتيونتوكالافتربروسيس *** ذلك)؛
// موضوع آخر - على تريد إلغاء الحدث:
هبروك - = إيفنثاندلر جديد (فونكتيونتوكالافتيربروسيس *** ذلك)؛
عملية الخروج والرغبة في إلغاء الانتظار.
وGT. كيف دائم هو ويتفوريكسيت ()؛ ؟ أعني هناك أي شيء / أ.
وGT. بديل واحد يمكن القيام به لكسر الانتظار وإلا سوف تشغيل بلدي موضوع.
وGT. في وظيفة منفصلة، والسيطرة عليها من المتغيرات العالمية.
وGT. السبب - موضوع CMD. EXE، مع تطبيق وحدة التحكم قيد التشغيل، ونحن.
وGT. تحتاج إلى إلغاء من قبل موضوع تشغيل مسارها.
وGT. هنا هو ما لدينا:
وGT. بروسيسستارتينفو يسي = نيو.
وGT. هبروك = نيو بروسيس ()؛
الزائد الذي يسمح لك لتحديد مهلة بول ويتفوريكسيت (إنت.
msToWait). إذا قمت بتشغيله في مؤشر ترابط منفصل وقتله أنت.
الذهاب للحصول على استثناء توقف. قد ترغب في التأكد من.
العملية التي بدأت لا تزال قيد التشغيل (إذا كان، وقتله).
وGT. يمكنك إما قتل مؤشر الترابط تشغيل ويتفوريكسيت () أو استخدام.
وGT. الزائد الذي يسمح لك لتحديد مهلة بول ويتفوريكسيت (إنت.
وGT. msToWait). إذا قمت بتشغيله في مؤشر ترابط منفصل وقتله أنت.
وGT. الذهاب للحصول على استثناء توقف. قد ترغب في التأكد من.
وGT. العملية التي بدأت لا تزال قيد التشغيل (إذا كان، وقتله).
تحليل Waitforexit
يتم استخدام التحميل الزائد ويتفوريكسيت () () () لجعل انتظار مؤشر الترابط الحالي حتى تنتهي العملية المقترنة. تقوم هذه الطريقة بإرشاد مكون العملية إلى الانتظار لوقت غير محدود من الوقت لإنهاء العملية. قد يؤدي هذا إلى توقف التطبيق عن الاستجابة. على سبيل المثال، إذا قمت باستدعاء كلوسمينويندو لعملية تحتوي على واجهة مستخدم، قد لا يتم التعامل مع الطلب إلى نظام التشغيل إنهاء العملية المقترنة إذا تمت كتابة العملية عدم إدخال حلقة الرسائل.
يضمن هذا التحميل الزائد أن جميع عمليات المعالجة قد اكتملت، بما في ذلك التعامل مع الأحداث غير المتزامنة للإخراج القياسي المعاد توجيهه. يجب استخدام هذا التحميل الزائد بعد إجراء مكالمة إلى التحميل الزائد ويتفوريكسيت (Int32) عند إعادة توجيه الإخراج القياسي إلى معالجات الأحداث غير المتزامنة.
هذا بالطبع ل. ما الذي يجعلك تعتقد أنه لا ينتظر حتى تنتهي عملية المذكرة؟ ما هي علامات ذلك؟ ما هو الدليل؟
عملية p = عملية جديدة ()؛
MessageBox. Show (& كوت؛ يجب إغلاق المتصفح & كوت؛)؛
باستثناء أنك لا ثم الحصول على كائن العملية التي يمكنك استخدامها. إن جربت.
خافت ميبروك كعملية جديدة ()
ميبروك = process. Start (& كوت؛ إيكسلور & كوت ؛، & كوت؛ finance. yahoo/q/hp؟ s = & كوت؛ + رمز)؛
تقوم ميكروسوفت بإجراء استطلاع عبر الإنترنت لفهم رأيك لموقع مسن على الويب. إذا اخترت المشاركة، سيتم تقديم الاستبيان عبر الإنترنت لك عند مغادرة موقع مسن على ويب.
بديل واحد يمكن القيام به لكسر الانتظار وإلا سوف تشغيل بلدي موضوع.
في وظيفة منفصلة، والسيطرة عليها من المتغيرات العالمية.
السبب - موضوع CMD. EXE، مع تطبيق وحدة التحكم قيد التشغيل، ونحن.
تحتاج إلى إلغاء من قبل موضوع تشغيل مسارها.
هنا هو ما لدينا:
بروسيسستارتينفو يسي = نيو.
هبروك = نيو بروسيس ()؛
وGT. حسنا، يمكنك استخدام:
hbProc. Exited + = جديد إيفنثاندلر (فونكتيونتوكالافتربروسيس *** ذلك)؛
// موضوع آخر - على تريد إلغاء الحدث:
هبروك - = إيفنثاندلر جديد (فونكتيونتوكالافتيربروسيس *** ذلك)؛
عملية الخروج والرغبة في إلغاء الانتظار.
وGT. كيف دائم هو ويتفوريكسيت ()؛ ؟ أعني هناك أي شيء / أ.
وGT. بديل واحد يمكن القيام به لكسر الانتظار وإلا سوف تشغيل بلدي موضوع.
وGT. في وظيفة منفصلة، والسيطرة عليها من المتغيرات العالمية.
وGT. السبب - موضوع CMD. EXE، مع تطبيق وحدة التحكم قيد التشغيل، ونحن.
وGT. تحتاج إلى إلغاء من قبل موضوع تشغيل مسارها.
وGT. هنا هو ما لدينا:
وGT. بروسيسستارتينفو يسي = نيو.
وGT. هبروك = نيو بروسيس ()؛
الزائد الذي يسمح لك لتحديد مهلة بول ويتفوريكسيت (إنت.
msToWait). إذا قمت بتشغيله في مؤشر ترابط منفصل وقتله أنت.
الذهاب للحصول على استثناء توقف. قد ترغب في التأكد من.
العملية التي بدأت لا تزال قيد التشغيل (إذا كان، وقتله).
وGT. يمكنك إما قتل مؤشر الترابط تشغيل ويتفوريكسيت () أو استخدام.
وGT. الزائد الذي يسمح لك لتحديد مهلة بول ويتفوريكسيت (إنت.
وGT. msToWait). إذا قمت بتشغيله في مؤشر ترابط منفصل وقتله أنت.
وGT. الذهاب للحصول على استثناء توقف. قد ترغب في التأكد من.
وGT. العملية التي بدأت لا تزال قيد التشغيل (إذا كان، وقتله).
Comments
Post a Comment