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