using System; using System.Diagnostics; using System.Threading.Tasks; using CefSharp.BrowserSubprocess; namespace TweetDuck.Browser{ static class Program{ private static int Main(string[] args){ SubProcess.EnableHighDPISupport(); string FindArg(string key){ return Array.Find(args, arg => arg.StartsWith(key, StringComparison.OrdinalIgnoreCase)).Substring(key.Length); } const string typePrefix = "--type="; const string parentIdPrefix = "--host-process-id="; if (!int.TryParse(FindArg(parentIdPrefix), out int parentId)){ return 0; } Task.Factory.StartNew(() => KillWhenHung(parentId), TaskCreationOptions.LongRunning); if (FindArg(typePrefix) == "renderer"){ using SubProcess subProcess = new SubProcess(args); return subProcess.Run(); } else{ return SubProcess.ExecuteProcess(); } } private static async void KillWhenHung(int parentId){ try{ using Process process = Process.GetProcessById(parentId); process.WaitForExit(); }catch{ // ded } await Task.Delay(10000); Environment.Exit(0); } } }