Monday 27 November 2017

ويتفوريكسيت لا تنتظر


أنا إضافة العمل مخصص في بلدي الإعداد VS2008 مشروع (مسي المثبت). أنا استدعاء ملف دفعي لإنشاء قاعدة بيانات وتريد حذف تلك الملفات بعد. لدي ويتفوريكسيت () لكنها لن تنتظر. لماذا لا فرق مع startInfo. UseShellExecute صحيح تم تنفيذ دفعة دون أي مشكلة لأنه يتطلب إدخال المستخدم وأنا إدخال y و n للأسئلة. ولكن حدث حذف الإجراء قبل إدخالي. ولدي وقفة في نهاية ملف الدفعي. أستطيع مشاهدة عملية ملف الدفعات الجارية. إديت: اختبرت أكثر من 10 مرات، فإنه لم يعمل. بعد الغداء، وأنا وضعت واحدة أكثر ويتفوريكسيت وحلقة في حين مع الاختيار هسيكسيتد. وسوف النوم داخل الحلقة بينما. وجدت أنها عملت. ثم حذفت تلك التعليمات البرمجية إضافية، والعودة إلى واحد ويتفوريكسيت. يبدو العمل الآن. سوب 29 10 17 في 17: 18 لدي حالة حيث أريد تنفيذ ملف ثم قم بحذف الملف القابل للتنفيذ عند تنفيذ التنفيذ. يمكنني استخدام System. Diagnostics. Process. Start () لتنفيذ الملف، واستخدام. WaitForExit () الانتظار لإكمال العملية. ثم استخدم File. Delete (اسم الملف) لحذف الملف القابل للتنفيذ. المشكلة هي أنه في بعض الأحيان سوف تفشل File. Delete مع الخطأ التالي: هذا يقودني إلى الاعتقاد بأن بطريقة ما، لا تزال العملية على قيد الحياة وقفل الملف القابل للتنفيذ حتى بعد إرجاع استدعاء. WaitForExit (). لقد وجدت مواضيع أخرى على الشبكة التي تصف نفس السلوك، ولكن لم أجد أي أن تختتم مع تفسير معقول أو حل لهذه المشكلة، بخلاف اقتراحات وضع النوم (ن) بعد ويتفوريكسيت (). أمثلة: هنا هو برنامج عينة أن يعيد المشكلة بالنسبة لي. لقد اختبرت على كل من ويندوز زب و ويندوز 7، وكلاهما تفشل في نهاية المطاف في مرحلة ما مع نفس الخطأ. لاحظ أيضا أن ss. exe قابل للتنفيذ هو بسيط بسيط كوهيلو ورلدكوت تطبيق وحدة التحكم. والانتاج عادة ما يبدو شيئا مثل (مع كمية مختلفة من التكرارات قبل وقوع الحادث): أي أفكار حول لماذا يحدث هذا، وإذا كان هناك بعض الإصلاح لهذا (بخلاف وضع ينام في التعليمات البرمجية) الجمعة 08 يناير 2010 3 : 40 بيإم السبب هو أنه على الرغم من اكتمال العملية، قد يستغرق بضعة ميلي ثانية واحدة لنظام التشغيل لإنهاء تدميره. في نظام التشغيل متعددة المهام بعد كل شيء، في محاولة لخدمة الجميع في نفس الوقت. للأسف، لا توجد طريقة لمعرفة متى لم يتم تأمين الملف (بريسيسلي). عندما أنت ويتفوريكسيت، تقوم بإنشاء كائن تأمين على كائن العملية. لا يمكن تدمير كائن العملية حتى يتم تحرير القفل ولا يمكنك الانتظار على شيء لا توجد (الدجاج والبيض نوع القضية). حتى الشيء الوحيد المعقول الذي يمكنك القيام به هو الحفاظ على المحاولة، شيء من هذا القبيل: علامة كما جواب صموئيل ستانوجيفيك الجمعة، 08 يناير 2010 4:20 م تحريره من قبل تيرجيفر الجمعة، يناير 08، 2010 4:20 بيإم تغيير إلى بول، حلقة لانهائية إصلاح الجمعة، يناير 08، 2010 4:15 بيإم تقوم ميكروسوفت بإجراء استطلاع عبر الإنترنت لفهم رأيك لموقع مسن على الويب. إذا اخترت المشاركة، سيتم تقديم الاستبيان عبر الإنترنت لك عند مغادرة موقع مسن على ويب. هل ترغب في المشاركة

No comments:

Post a Comment