描述:用戶多次快速開啟WPF程序的時候 只運行起來 一個 程序(exe) 其他多開的 進程 自動關閉掉
App.xaml.cs文件
1 protected override void OnStartup(StartupEventArgs e) 2 { 3 //當前運行WPF程序的進程實例 4 Process process = Process.GetCurrentProcess(); 5 //遍歷WPF程序的同名進程組 6 foreach (Process p in Process.GetProcessesByName(process.ProcessName)) 7 { 8 //不是同一進程並且本進程啟動時間最晚,則關閉較早進程 9 if (p.Id != process.Id && (p.StartTime - process.StartTime).TotalMilliseconds <= 0) 10 { 11 p.Kill();//這個地方用kill 而不用Shutdown();的原因是,Shutdown關閉程序在進程管理器里進程的釋放有延遲不是馬上關閉進程的 12 //Application.Current.Shutdown(); 13 return; 14 } 15 16 17 } 18 base.OnStartup(e); 19 }
最后說一句,,,,,,WPF的 資源釋放托管 實在太爛了 各種內存泄漏問題 (#‵′)凸 還得自己寫資源釋放