我有一个应该只能在单个实例中运行的webform(c#)应用程序。同样重要的是,如果应用程序再次启动(点击应用程序图标),那么新参数应该被转发到当前实例,但现在应用程序将被启动。Winform应用程序的单例,但提供参数?
我ofcouse谷歌的问题,并发现这一点:http://www.sanity-free.com/143/csharp_dotnet_single_instance_application.html
这是我如何设定它为止:
public class MyApp : ApplicationContext
{
private static MyApp _instance;
private static Mutex _mutex = new Mutex(true, "{8F6F0AC4-B9A1-45fd-A8CF-72F04E6BDE8F}");
[STAThread]
public static void Main(string[] args)
{
MyParams params;
params = ExtractParams(args);
if (_mutex.WaitOne(TimeSpan.Zero, true))
{
_instance = new MyAppp(params);
Application.Run(_instance);
}
else
{
_instance.SetParameters(params);
}
}
}
的问题,这是我第二次尝试启动该程序我会得到一个异常,在其他_instance为空?
我在这里做错了什么?
我要和sugestions 2一起去,它似乎现在工作得很好。 – Banshee