代码之家  ›  专栏  ›  技术社区  ›  Led

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

  •  15
  • Led  · 技术社区  · 17 年前

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

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

    可以使用Visual Basic DLL和使我的应用程序成为单个实例。这是个单实例的把戏,但我不想去那里。

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

    非常感谢您的帮助!:-)

    5 回复  |  直到 17 年前
        1
  •  3
  •   Aric TenEyck    17 年前

    尝试以下操作:主程序创建一个命名管道或其他进程间通信设施,并侦听它。您可以创建一个单独的小程序,当使用NZB文件作为参数运行时,该程序会打开管道,将文件信息输入其中,然后退出。然后,主程序处理并下载新文件。

        2
  •  0
  •   D'Arcy Rittich    17 年前

    为什么不让一个程序将文件添加到队列中,然后启动尚未运行的下载程序呢。下载程序监视队列,队列只是一个附加下载文件名的文件。

        3
  •  0
  •   Mike Marshall    17 年前

    查看下面的InitialInstanceActivator Genghis 项目

        4
  •  0
  •   Sandeep Datta    17 年前

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