عملية ويتفوريكسيت ريديريكستانداردوتوتبوت c #
إيلينا: شكرا لإجابتك. هناك بعض الملاحظات في الجزء السفلي من مستند مسن هذا (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. لم تتم إعادة توجيه ستانداردوت أو لم تبدأ العملية بعد. ثم عليك أن تبدأ إخراج غير متزامن قراءة بعد بدء العملية: القيام بذلك، وجعل حالة سباق لأن تيار الإخراج يمكن أن تتلقى البيانات قبل تعيينه إلى غير متزامن: ثم بعض الناس يمكن أن أقول أن لديك فقط لقراءة تيار قبل تعيينه إلى غير متزامن. ولكن نفس المشكلة تحدث. سيكون هناك حالة سباق بين قراءة متزامن وتعيين تيار في وضع غير متزامن. لا توجد طريقة للحصول على قراءة غير متزامنة آمنة من تيار الإخراج من عملية في الطريقة الفعلية وقد تم تصميم عملية و بروسيسستارتينفو. ربما كنت أفضل باستخدام قراءة غير متزامن مثل اقترح من قبل المستخدمين الآخرين لحالتك. ولكن يجب أن تكون على علم بأنك يمكن أن تفوت بعض المعلومات بسبب حالة العرق. أنا أرى إخفاقات غريبة عند تنفيذ سطر الأوامر من داخل خدمة ويندوز باستخدام عملية. مقتطف التعليمات البرمجية التالي مشابه إلى التعليمات البرمجية في السؤال: عام ثابت فواد رونكوماندلين (الأمر سلسلة) عملية عملية نول محاولة عملية بروسيسستارتينفو عملية جديدة بروسيسستارتينفو (كوتسمد. إكسكوت، كوتش كوت كوماند) processInfo. CreateNoWindow ترو processInfo. WindowStyle ProcessWindowStyle. Hidden processInfo. UseShellExecute كروس processInfo. RedirectStandardOutput ترو processInfo. LoadUserProfile ترو بروسيس عملية جديدة () عملية. ستارتينفو عملية إنفو. ستارت () process. EnableRaisingEvents صحيح process. OutputDataReceived جديد داتاريسيفديفاندلر (بروسيسوتوتباتاريزيفيد) كاتش (إكستيون إكس) عملية باطلة ثابتة أوتبوتداتاريتيفد (كائن المرسل، داتاريسيفنتارغس ه) تعمل التعليمات البرمجية بشكل جيد عند تنفيذها باستخدام إطار وحدة التحكم ولكن يفشل عندما تكون في خدمة ويندوز. يمكن استبعاد ما يلي كما حاولت بالفعل: تشغيل الخدمة كحساب مع امتيازات أكبر تعيين خدمة السماح للتفاعل مع سطح المكتب توريد كامل المسارات لقد تتبعت المشكلة مرة أخرى إلى ريديركتستانداردوتتبوت، عندما يكون أي نهج لإعادة توجيه الإخراج القياسية هو نفذت (لقد حاولت أيضا process. StandardOutput. ReadToEnd () وتفرخ موضوع منفصل الخ) فشل الأمر (أو بالأحرى للتنفيذ الذي يسمى). ومن المؤكد تقريبا أن تفعل مع بيئة خدمة النافذة (أو عدم وجودها) كما يعمل الأمر الخام في نافذة سمد يعمل، وما سبق في نافذة وحدة التحكم يعمل أيضا السؤال هو بالضبط ما أحتاج إلى القيام به لتكرار وحدة التحكم لقد قرأت من خلال المنتديات المختلفة ويبدو أنها تشير إلى استخدام بعض التعليمات البرمجية غير المدارة التالية: لوغونوسريكس () إيمبرسوناتلوجيدونوسر () كريتنفونفيربلوك () جيتوسربروفيلديركتوري () لوادوسربروفيل () كريتيبروسيساسوسر () ديستروينفيرونتبلوك () أونلوادوسربروفيل () ريفرتوسلف () يمكن أي شخص يؤكد هذا ليكون صحيحا أي مساعدة موضع تقدير كبير. إم تشغيل على زب Server2003. والفشل هو خطأ غامض خاص بالتنفيذ الذي يتم استدعاؤه، لذلك لا توجد أية استثناءات يتم طرحها و بروسيس () موجود كما هو متوقع، ولكن يشير process. ExitCode إلى فشل. لأن إم التقاط ستدوت عبر أوتبوتداتاريسيفيد أرى الخطأ الدقيق. ما لا أستطيع الحصول على الماضي هو أن التعليمات البرمجية التي تدعو إيكس يعمل بشكل جيد تماما عندما دعا من وحدة التحكم. ومن الواضح أن كل ما تحاول إيكس القيام به، إما أنه ليس لديه إذن كاف للقيام به. أو عدم وجود بيئة السبت، 06 ديسمبر 2008 2:27 ص تقوم ميكروسوفت بإجراء استطلاع عبر الإنترنت لفهم رأيك لموقع مسن على الويب. إذا اخترت المشاركة، سيتم تقديم الاستبيان عبر الإنترنت لك عند مغادرة موقع مسن على ويب. هل ترغب في المشاركة
Comments
Post a Comment