patron - C#: cómo-¿aplicación de instancia única que acepta nuevos parámetros?
singleton service c# (6)
¿Por qué no tener un programa que agrega el archivo a una cola y luego inicia el programa de descarga si aún no se está ejecutando? Ese programa de descarga mira la cola, que es solo un archivo al que se añaden los nombres de los archivos de descarga.
Estoy creando un programa (C #) que descarga archivos binarios usando archivos NZB, solo puede haber una instancia de mi aplicación ejecutándose en cualquier momento.
Entonces, cuando un usuario hace doble clic en un archivo .nzb y mi programa no se está ejecutando, debería iniciarlo y procesarlo (fácil, registro de archivos). Ahora, si mi programa ya se está ejecutando, NO quiero iniciar una segunda instancia: quiero que la instancia que ya está ejecutándose recupere el archivo especificado.
Hacer mi instancia única de aplicación puede hacerse usando la DLL de Visual Basic con el truco .IsSingleInstance, pero no quiero ir allí.
La forma correcta parece ser utilizar un mutex para asegurar que mi aplicación sea de instancia única, pero ahora estoy atascado en cómo pasar el parámetro especificado (el archivo .nzb) a la instancia que ya se está ejecutando.
¡Ayuda sería apreciada! :-)
Intente esto: su programa principal crea un conducto con nombre u otro recurso de comunicación entre procesos y escucha en él. Usted crea un pequeño programa por separado que, cuando se ejecuta con un archivo NZB como parámetro, abre el conducto, ingresa la información del archivo en él y sale. Su programa principal luego procesa el nuevo archivo y lo descarga.
Mira el InitialInstanceActivator en el proyecto Genghis
Use un mecanismo de IPC (inter process communication) como .net remoting
Mi solución para este problema: http://blogs.microsoft.co.il/blogs/maxim/archive/2010/02/13/single-instance-application-manager.aspx
Usando la "buena implementación", tuve que agregar un escritor.Flush () después de WriteLine () para que funcione. Perdí un poco de tiempo para encontrar esto ...