![](/img/trans.png)
[英]Caliburn Micro View First Bootstrapper OnStartup for WPF application
[英]Where in the caliburn micro bootstrapper can I inject already running code and close application
我有以下代碼片段。
bool ok;
var m = new System.Threading.Mutex(true, "Application", out ok);
if (!ok)
{
MessageBox.Show("Another instance is already running.", ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString());
}
那應該檢查應用程序是否已經在運行。 我試圖將其注入
protected override void StartRuntime()
但不知道如何在if(!ok)
分支中終止該應用程序,是否有更好的位置注入此代碼以確保該應用程序僅運行一次。
protected override void OnStartup(object sender, StartupEventArgs e)
{
Application.Current.Shutdown();
}
我這樣解決了。
protected override void StartRuntime()
{
bool ok;
var m = new System.Threading.Mutex(true, "Application", out ok);
if (!ok)
{
Application.Current.Shutdown();
}
base.StartRuntime();
}
另一個選擇是在WPF(或其他任何方式)有機會初始化之前,先檢查程序的Main()
方法。 如果檢查返回該應用程序可以啟動,則可以創建Application
對象並將其設置為Run()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.