在两个C#应用程序实例之间传递字符串
我构建了一个媒体播放器,该媒体播放器与多种媒体文件类型相关联。在两个C#应用程序实例之间传递字符串,c#,single-instance,C#,Single Instance,我构建了一个媒体播放器,该媒体播放器与多种媒体文件类型相关联。 每次用户打开媒体文件时,我都会检查播放机是否打开。 我设法阻止打开两个实例,但我想将文件路径传递给已打开的实例。 我正在使用互斥来阻止打开,我一直在尝试使用SendMessage来传递字符串。 最好的方法是什么?我认为最好的方法是在媒体播放器中创建WCF服务。 你可以很容易地与它沟通。 请参见类Try,即NamedPipeServerStream&NamedPipeClientStream。虽然在您的情况下,基本写入临时锁文件/从
每次用户打开媒体文件时,我都会检查播放机是否打开。
我设法阻止打开两个实例,但我想将文件路径传递给已打开的实例。
我正在使用互斥来阻止打开,我一直在尝试使用SendMessage来传递字符串。
最好的方法是什么?我认为最好的方法是在媒体播放器中创建WCF服务。 你可以很容易地与它沟通。
请参见类Try,即
NamedPipeServerStream
&NamedPipeClientStream
。虽然在您的情况下,基本写入临时锁文件/从临时锁文件读取可能不是一个坏主意,但也可以提供一些概述。有一整套技术可供您使用,包括WCF、MSMQ和远程处理。这需要框架3.5,我需要它是FW2。@user1689604什么是FW2?请参阅已编辑的,临时文件是否足够?框架2。写入临时文件是不够的:首先,我如何知道何时读取它?其次,它真的很凌乱。锁定文件足以满足Tomcat、TeamCity、Vim等的需要。我不认为你的媒体播放器比这更特别。加上名称管道不是.NET 3.5,C#wrapper是,你可以做一点CreateNamedPipe
PInvoke魔术,看看“here”链接示例。它仍然没有回答第一个问题-我仍然需要知道什么时候读它。