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. 進程之間的通信
- 3. 簡單的進程間通信
- 4. Qt4中簡單的進程間通信
- 5. 什麼是OS X中進程間通信的首選方法?
- 6. 2個正在運行的進程之間的進程間通信
- 7. 用C#在兩個進程之間進行通信的最佳方式是什麼?
- 8. 大型項目中進程間通信的最佳和最簡單的方法
- 9. C#應用程序之間的通信 - 簡單的方法
- 10. 2 C程序之間傳輸數據的最簡單方法?
- 11. 幾個node.js進程之間的通信
- 12. C - execvp()進程間通信
- 13. 進程間通信Unix C
- 14. C++和c之間進行通信的最快方法#
- 15. 如何在C#中進行進程間通信時進行進程間通信?
- 16. 什麼是C++和C#應用程序之間異步通信的最簡單方法
- 17. 進程間通信的最佳途徑是什麼?
- 18. .NET進程間通信的最佳選擇是什麼?
- 19. C++和vb.net應用程序之間的進程間通信
- 20. 進程間通信
- 21. 進程間通信
- 22. 父進程和多個子進程之間的通信
- 23. 保護iOS應用程序和Rails應用程序之間通信的最簡單方法是什麼?
- 24. c/C++中的進程間通信
- 25. 在python和haskell進程之間進行通信的ipc庫是什麼?
- 26. VHDL中進程之間的通信
- 27. Rails進程之間的通信
- 28. Windows核心進程之間的通信
- 29. 進程與管道之間的通信
- 30. luajit2進程之間的通信?
我已經做了一篇關於我使用命名管道在WCF進程間通信的一個非常簡單的例子博客。 [https://dopeydev.com/wcf-interprocess-communication/](https://dopeydev.com/wcf-interprocess-communication/) – 2016-08-09 14:16:16