C# 无法等待进程运行到结束
我在页面后面有一个aspx代码,它使用进程(p)调用应用程序(exe文件),如下代码所示:C# 无法等待进程运行到结束,c#,.net,multithreading,threadabortexception,C#,.net,Multithreading,Threadabortexception,我在页面后面有一个aspx代码,它使用进程(p)调用应用程序(exe文件),如下代码所示: p.Start(); while(!p.HasExited) { Thread.Sleep(2000); } p.Dispose(); while循环等待2秒,但总是抛出如下异常: System.Threading.ThreadAbortException: Thread was being aborted. at System.Threading.Thread.SleepInternal
p.Start();
while(!p.HasExited)
{
Thread.Sleep(2000);
}
p.Dispose();
while循环等待2秒,但总是抛出如下异常:
System.Threading.ThreadAbortException: Thread was being aborted.
at System.Threading.Thread.SleepInternal(Int32 millisecondsTimeout)
at Insyma.ContentUpdate.XmlReader.DoSleep()
在语句Thread.Sleep(2000)
中。
所以任何人都可以帮我解决问题。
非常感谢,请使用AutoResetEvent
class BasicWaitHandle
{
static EventWaitHandle _waitHandle = new AutoResetEvent (false);
static void Main()
{
new Thread (Waiter).Start();
_waitHandle.WaitOne(); //wait for notification
//Do operartion
}
static void Waiter()
{
//Do operations
_waitHandle.Set(); //Unblock
}
}
似乎你需要一些火和忘记模式。线程正在退出,因为一旦呈现页面,它的实例很容易被释放。。所以这可能就是你需要的
ThreadPool.QueueUserWorkItem(o => FireAway());
private void FireAway()
{
p.Start();
while(!p.HasExited)
{
Thread.Sleep(2000);
}
p.Dispose();
}
有关更多信息:
关于。子进程运行多长时间?您是否在
线程中强制父进程结束。睡眠?为什么不使用内置的WaitForExit
方法呢?