45
A
回答
29
匿名管道。
http://msdn.microsoft.com/en-us/library/bb546102.aspx
使用异步操作用的BeginRead/BeginWrite和AsyncCallback的。
9
我会建议使用Windows通讯基础:
http://en.wikipedia.org/wiki/Windows_Communication_Foundation
你可以通过对象来回,使用各种不同的协议。我会建议使用二进制tcp协议。
+57
...那么复杂的方式是什么呢? – dfasdljkhfaskldjhfasklhf 2009-02-09 15:50:38
+4
@BPAndrew:重写你自己的WCF版本? ;) – technophile 2009-02-09 15:55:45
5
13
如果您在同一台计算机的过程,你可以简单地使用STDIO。
这是我的使用,网页screenshooter:
var jobProcess = new Process();
jobProcess.StartInfo.FileName = Assembly.GetExecutingAssembly().Location;
jobProcess.StartInfo.Arguments = "job";
jobProcess.StartInfo.CreateNoWindow = false;
jobProcess.StartInfo.UseShellExecute = false;
jobProcess.StartInfo.RedirectStandardInput = true;
jobProcess.StartInfo.RedirectStandardOutput = true;
jobProcess.StartInfo.RedirectStandardError = true;
// Just Console.WriteLine it.
jobProcess.ErrorDataReceived += jp_ErrorDataReceived;
jobProcess.Start();
jobProcess.BeginErrorReadLine();
try
{
jobProcess.StandardInput.WriteLine(url);
var buf = new byte[int.Parse(jobProcess.StandardOutput.ReadLine())];
jobProcess.StandardOutput.BaseStream.Read(buf, 0, buf.Length);
return Deserz<Bitmap>(buf);
}
finally
{
if (jobProcess.HasExited == false)
jobProcess.Kill();
}
检测的主要
static void Main(string[] args)
{
if (args.Length == 1 && args[0]=="job")
{
//because stdout has been used by send back, our logs should put to stderr
Log.SetLogOutput(Console.Error);
try
{
var url = Console.ReadLine();
var bmp = new WebPageShooterCr().Shoot(url);
var buf = Serz(bmp);
Console.WriteLine(buf.Length);
System.Threading.Thread.Sleep(100);
using (var o = Console.OpenStandardOutput())
o.Write(buf, 0, buf.Length);
}
catch (Exception ex)
{
Log.E("Err:" + ex.Message);
}
}
//...
}
0
相关问题
- 1. 在c#和c之间进行进程间通信的最简单方法是什么?
- 2. 什么是Linux上的pthreads之间进行通信的最简单的方法
- 3. 什么是最高效的node.js进程间通信库/方法?
- 4. Qt4中简单的进程间通信
- 5. 简单的进程间通信
- 6. 进程之间的通信
- 7. 什么是OS X中进程间通信的首选方法?
- 8. 2个正在运行的进程之间的进程间通信
- 9. 用C#在两个进程之间进行通信的最佳方式是什么?
- 10. 大型项目中进程间通信的最佳和最简单的方法
- 11. 与Windows应用程序之间进行通信的最佳方式是什么?
- 12. C#应用程序之间的通信 - 简单的方法
- 13. 2 C程序之间传输数据的最简单方法?
- 14. C - execvp()进程间通信
- 15. 进程间通信Unix C
- 16. 几个node.js进程之间的通信
- 17. C++和c之间进行通信的最快方法#
- 18. 如何在C#中进行进程间通信时进行进程间通信?
- 19. 进程间通信方式
- 20. 什么是C++和C#应用程序之间异步通信的最简单方法
- 21. 进程与线程之间的通信
- 22. .NET进程间通信的最佳选择是什么?
- 23. 进程间通信的最佳途径是什么?
- 24. 使用c#进行两个进程之间的通信#
- 25. C++和vb.net应用程序之间的进程间通信
- 26. 什么是最简单的进程间通信方法 - 跨越任何操作系统和语言
- 27. 进程间通信
- 28. 进程间通信
- 29. 进程间通信
- 30. 使用IPC与Python和C#进行通信的最简单方法是什么?
我已经做了一篇关于我使用命名管道在WCF进程间通信的一个非常简单的例子博客。 [https://dopeydev.com/wcf-interprocess-communication/](https://dopeydev.com/wcf-interprocess-communication/) – 2016-08-09 14:16:16