Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.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#_.net_Ipc - Fatal编程技术网

C# 从一个正在运行的控制台应用程序向另一个发送消息

C# 从一个正在运行的控制台应用程序向另一个发送消息,c#,.net,ipc,C#,.net,Ipc,我有一个控制台应用程序正在与ftp服务器进行长时间同步。 另一个控制台应用程序使用一些需要更新的文件准备本地文件系统。 然后,第二个将等待第一个完成,然后再交换最终目录名,使其在web上可见 我搜索了使同步应用程序与第二个应用程序通信的最佳方法,即它已完成任务。看起来这是最适合的解决方案 问题有两个方面: 我说得对吗?有没有更直接的方法达到同样的结果 有没有一种托管(.net)方法可以做到这一点 IPC的其他流行选项包括: 命名管道 远程处理(.NET) 周转基金 如果您只需要同步,可以考

我有一个控制台应用程序正在与ftp服务器进行长时间同步。
另一个控制台应用程序使用一些需要更新的文件准备本地文件系统。
然后,第二个将等待第一个完成,然后再交换最终目录名,使其在web上可见

我搜索了使同步应用程序与第二个应用程序通信的最佳方法,即它已完成任务。看起来这是最适合的解决方案

问题有两个方面:

  • 我说得对吗?有没有更直接的方法达到同样的结果
  • 有没有一种托管(.net)方法可以做到这一点

IPC的其他流行选项包括:

  • 命名管道
  • 远程处理(.NET)
  • 周转基金

如果您只需要同步,可以考虑<代码>信号量< /C> >或<代码>互斥> <代码>对象。.NET的

System.Threading
命名空间中存在一些类。如果您创建这些类的命名版本,则它们将应用于整个计算机。

如果您只需要通知一个应用程序另一个应用程序已完成其任务,最简单的方法是使用命名的EventWaitHandle。对象是在其未标记状态下创建的。第一个应用程序等待句柄,第二个应用程序在完成其工作时向句柄发出信号。例如:

// First application
EventWaitHandle waitForSignal = new EventWaitHandle(false, EventResetMode.ManualReset, "MyWaitHandle");

// Here, the first application does whatever initialization it can.
// Then it waits for the handle to be signaled:
// The program will block until somebody signals the handle.
waitForSignal.WaitOne();
设置第一个等待同步的程序。第二个应用程序同样简单:

// Second app
EventWaitHandle doneWithInit = new EventWaitHandle(false, EventResetMode.ManualReset, "MyWaitHandle");

// Here, the second application initializes what it needs to.
// When it's done, it signals the wait handle:
doneWithInit.Set();

当第二个应用程序调用Set时,它会向事件发出信号,第一个应用程序将继续。

这听起来很好。我会立即测试并返回这里:)我不知道你说的一半单词,但会做一些研究:);1为我提供关键字的提示:)