Browse Source

Don't kill process every time

pull/148/head
Nikita Tsukanov 11 years ago
parent
commit
33630bd2cb
  1. 18
      src/Windows/Perspex.Designer/Comm/ProcessHost.cs

18
src/Windows/Perspex.Designer/Comm/ProcessHost.cs

@ -64,16 +64,22 @@ namespace Perspex.Designer.Comm
void OnExited(object sender, EventArgs eventArgs)
{
_comm.Dispose();
_proc = null;
_dispatcher.Post(_ =>
{
IsAlive = false;
WindowHandle = IntPtr.Zero;
State = "Designer process crashed";
HandleExited();
}, null);
}
void HandleExited()
{
_comm.Dispose();
IsAlive = false;
WindowHandle = IntPtr.Zero;
State = "Designer process crashed";
}
public void Start(string targetExe, string initialXaml)
{
if (_proc != null)
@ -84,7 +90,7 @@ namespace Perspex.Designer.Comm
_proc.Kill();
}
catch { }
OnExited(null, null);
HandleExited();
State = "Restarting...";
}
@ -109,11 +115,11 @@ namespace Perspex.Designer.Comm
_comm.OnMessage += OnMessage;
_comm.Start();
_comm.SendMessage(msg);
return;
}
catch (Exception e)
{
State = e.ToString();
HandleExited();
}
IsAlive = true;

Loading…
Cancel
Save