C#:如何 - 接受新参数的单实例应用程序?

时间:2009-05-27 20:32:56

标签: c# parameters instance

我正在创建一个使用NZB文件下载二进制文件的(C#)程序,我的应用程序可能只有一个实例在运行。

因此,当用户双击.nzb文件并且我的程序未运行时,它应该启动并处理它(简单,文件注册)。 现在,如果我的程序已经运行,我不想启动第二个实例 - 我希望已经运行的实例获取指定的文件。

使用带有.IsSingleInstance技巧的Visual Basic DLL可以完成我的应用程序单实例,但我不想去那里。

正确的方法似乎是使用互斥锁来确保我的应用程序是单实例, 但现在我不知道如何将指定的参数(.nzb文件)传递给已经运行的实例。

帮助将不胜感激! : - )

4 个答案:

答案 0 :(得分:3)

试试这个:你的主程序创建一个命名管道或其他进程间通信工具并监听它。您创建一个单独的小程序,当以NZB文件作为参数运行时,打开管道,将文件信息输入其中,然后退出。然后,您的主程序将处理新文件并下载。

答案 1 :(得分:0)

为什么没有一个程序将文件添加到队列中,然后启动下载程序(如果它尚未运行)。该下载程序会监视队列,该队列只是您下载文件名的文件。

答案 2 :(得分:0)

查看Genghis项目

上的InitialInstanceActivator

答案 3 :(得分:0)

使用IPC(进程间通信)机制,例如.net remoting

相关问题