轻松地在两个本地运行的进程之间共享/访问单个变量(字符串)
本文关键字:之间 共享 单个 字符串 变量 进程 访问 两个 运行 | 更新日期: 2023-09-27 17:53:11
2本地和正在运行的应用程序:App #1定期(timer1 @30sec)将"ping"写入共享/"跨进程"字符串。App #2定期检查(timer2 @60sec)是否共享字符串=="ping"并将其覆盖为"pong"。当timer2> timer1时,App #2将始终接收/读取字符串为"ping"。如果不是,那么我可以肯定地假设应用#1崩溃/挂起并重新启动它。
我知道这可以很容易地完成剪贴板…
Clipboard.Clear();
Clipboard.SetData("checkthis", "ping");
.
.
.
object clip = Clipboard.GetData("checkthis")
if (clip.ToString() == "ping")
{
Clipboard.Clear();
Clipboard.SetData("checkthis", "pong");
}
…但我认为使用剪贴板是一个非常糟糕的主意,因为用户很容易把它弄乱。是否有其他解决方案像剪贴板一样易于使用?
内存映射文件是一种方法:http://msdn.microsoft.com/en-us/library/vstudio/dd997372(v=vs.100).aspx可以完成这项工作。
Named Pipes是另一个。
一个普通的文件也可以。只需让每个进程在文件中放置一个FileSystemWatcher
,并侦听更改。
我认为这个线程将帮助你解决你的问题。好运!
应用程序的多个实例的静态成员行为- c#