Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在两个C#应用程序实例之间传递字符串_C#_Single Instance - Fatal编程技术网

在两个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”链接示例。它仍然没有回答第一个问题-我仍然需要知道什么时候读它。