कार्य: यदि माता पिता प्रक्रिया समाप्त ऑटो सभी चाइल्ड प्रक्रियाओं को बंद। अभिभावक आय को न केवल सही तरीके से समाप्त किया जा सकता है, बल्कि उदाहरण के लिए ProcessExplorer में भी मार डाला जा सकता है। मैं इसे कैसे कर सकता हूं?कैसे बच्चे प्रक्रियाओं को समाप्त जब जनक प्रक्रिया सी # में समाप्त
С topic सलाह में इसी प्रकार के प्रश्न नौकरी वस्तुओं का उपयोग करें। बाहरी डीएलएल निर्यात किए बिना सी # में इसका उपयोग कैसे करें?
मैंने जॉब ऑब्जेक्ट्स का उपयोग करने की कोशिश की। लेकिन यह कोड ठीक से काम नहीं करता है:
var job = PInvoke.CreateJobObject(null, null);
var jobli = new PInvoke.JOBOBJECT_BASIC_LIMIT_INFORMATION();
jobli.LimitFlags = PInvoke.LimitFlags.JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE
| PInvoke.LimitFlags.JOB_OBJECT_LIMIT_PRIORITY_CLASS
| PInvoke.LimitFlags.JOB_OBJECT_LIMIT_JOB_TIME
| PInvoke.LimitFlags.JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION
| PInvoke.LimitFlags.JOB_OBJECT_LIMIT_JOB_MEMORY;
var res = PInvoke.SetInformationJobObject(job, PInvoke.JOBOBJECTINFOCLASS.JobObjectBasicLimitInformation, jobli, 48);
if (!res)
{
int b = PInvoke.GetLastError();
Console.WriteLine("Error " + b);
}
var Prc = Process.Start(...);
PInvoke.AssignProcessToJobObject(job, Prc.Handle);
PInvoke.SetInformationJobObject त्रुटि के साथ देता है। GetLastError त्रुटि 24 देता है। हालांकि, PInvoke.AssignProcessToJobObject काम करता है और जॉब कतार में जोड़ा गया बाल प्रक्रिया (मैं इसे ProcessExplorer में देख सकता हूं)। लेकिन, क्योंकि PInvoke.SetInformationJobObject काम नहीं करता है - जब मैं माता-पिता को मारता हूं तो उत्पन्न प्रक्रिया जीवित रहती है।
मैं इस कोड में गलत क्या है?
अन्य प्रश्न उत्तर मेरे लिए अच्छा प्रतीत होता है, बस कर्नेल 32 से कार्यों को पिनवोक करें। http://www.pinvoke.net/default.aspx/kernel32.assignprocesstojobobject –