我正在创建一个使用 NZB 文件下载二进制文件的 (C#) 程序,我的应用程序在任何时候可能只有一个实例在运行。
因此,当用户双击 .nzb 文件并且我的程序未运行时,它应该启动并处理它(简单,文件注册)。 现在,如果我的程序已经在运行,我不想启动第二个实例 - 我希望已经运行的实例获取指定的文件。
可以使用带有 .IsSingleInstance 技巧的 Visual Basic DLL 使我的应用程序成为单一实例,但我不想去那里。
正确的方法似乎是使用互斥锁来确保我的应用程序是单实例的, 但现在我陷入了如何将指定参数(.nzb 文件)传递给已经运行的实例的问题。
帮助将不胜感激! :-)
最佳答案
试试这个:你的主程序创建一个命名管道或其他进程间通信工具并监听它。您创建一个单独的小程序,当以 NZB 文件作为参数运行时,它会打开管道,将文件信息输入其中,然后退出。然后您的主程序会处理新文件并下载它。
关于C# : how to - single instance application that accepts new parameters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/917883/