Notifies caller when the process exits
Syntax
Event Data
The event handler receives an argument of type ProcessExitedEventArgs containing data related to this event. The following ProcessExitedEventArgs properties provide information specific to this event.
Property | Description |
---|
ExitCode | Returns the environment exit code of the process |
Example
Library/Library.Test/TestScriptRunner.cs
C# | Copy Code |
---|
using (ScriptRunner runner = new ScriptRunner(ScriptEngine.Language.CSharp, "class Program { static void Main() { System.Threading.Thread.Sleep(System.TimeSpan.FromHours(1)); } }"))
{
ManualResetEvent mre = new ManualResetEvent(false);
runner.ProcessExited += delegate(object o, ProcessExitedEventArgs e) { mre.Set(); };
runner.Start();
Assert.IsTrue(runner.IsRunning);
Assert.IsFalse(runner.WaitForExit(TimeSpan.Zero));
runner.Kill();
Assert.IsTrue(mre.WaitOne(0, false));
Assert.IsFalse(runner.IsRunning);
Assert.IsTrue(runner.WaitForExit(TimeSpan.Zero));
Assert.AreNotEqual(0, runner.ExitCode);
} |
VB.NET | Copy Code |
---|
Using runner As New ScriptRunner(ScriptEngine.Language.CSharp, "class Program { static void Main() { System.Threading.Thread.Sleep(System.TimeSpan.FromHours(1)); } }")
Dim mre As New ManualResetEvent(False)
runner.ProcessExited += Function(o As Object, e As ProcessExitedEventArgs) Do
mre.[Set]()
End Function
runner.Start()
Assert.IsTrue(runner.IsRunning)
Assert.IsFalse(runner.WaitForExit(TimeSpan.Zero))
runner.Kill()
Assert.IsTrue(mre.WaitOne(0, False))
Assert.IsFalse(runner.IsRunning)
Assert.IsTrue(runner.WaitForExit(TimeSpan.Zero))
Assert.AreNotEqual(0, runner.ExitCode)
End Using |
Requirements
Target Platforms: Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7
See Also