亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

WPF利用RPC調用其他進程的方法詳解

2019-10-29 21:01:52
字體:
來源:轉載
供稿:網友

前言

如果在 WPF 需要用多進程通信,一個推薦的方法是 WCF ,因為 WCF 是 RPC 計算。先來講下 RPC (Remote Procedure Call) 遠程過程調用,他是通過特定協議,包括 tcp 、http 等對其他進程進行調用的技術。詳細請看百度

現在不會告訴大家如何使用 WCF ,下面講的是使用 remoting 這個方法。需要知道 dotnet remoting 是已經過時的技術,建議使用 wcf 但是 wcf 部署難度比較高,對于性能要求比較高或想快速使用,建議使用 remoting 。使用方法很簡單

首先創建三個工程,一個工程放其他兩個需要使用的庫,一個是服務端,一個是客戶端。其中客戶端就可以調用服務端,客戶端和服務端是兩個不同的進程,所以可以跨進程調用。

方法如下:

先創建一個簡單的工程,庫的工程 RemoteObject ,里面只有一個類

 public class RemoteCalculator : MarshalByRefObject {  public const int Port = 13570;  public int Add(int a, int b)  {   return a + b;  } }

注意這個類需要繼承 MarshalByRefObject ,這個類是在兩個進程引用,客戶端不實現這個類,所以客戶端使用這個類接口同樣可以。具體調用這個類的方法在服務端運行,結果通過 tcp 或 http 返回。

客戶端的主要代碼是連接服務端,然后訪問庫的 add 函數,但是這個函數不在客戶端運行,通過 tcp 調用服務端,讓他運行。

  private void ButtonBase_OnClick(object sender, RoutedEventArgs e)  {   if (_channel == null)   {    Process.Start("CalcnsMnlhzydYeuiitcCddhxvlhm.exe");    _channel = new TcpChannel();    ChannelServices.RegisterChannel(_channel, true);   }   var calculator = (RemoteCalculator) Activator.GetObject(typeof(RemoteCalculator),    "tcp://" + "127.0.0.1" + ":" + RemoteCalculator.Port + "/RemoteCalculator");   Console.WriteLine(calculator.Add(1, 2));  }

服務端的名稱是 CalcnsMnlhzydYeuiitcCddhxvlhm ,主要是打開連接,執行客戶端發過來的函數

  static void Main(string[] args)  {   new Thread(() =>   {    _channel = new TcpChannel(RemoteCalculator.Port);    ChannelServices.RegisterChannel(_channel, true);    RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteCalculator), "RemoteCalculator", WellKnownObjectMode.Singleton);   }).Start();   while (true)   {    Console.ReadKey();   }  }  private static TcpChannel _channel;

需要注意,客戶端點擊按鈕需要先打開服務端,使用這個代碼Process.Start("CalcnsMnlhzydYeuiitcCddhxvlhm.exe");然后創建 tcp 告訴通過tcp和服務端連接。然后從服務端獲得 calculator 這個類,實際這個類現在是沒有實現,調用函數需要發送到服務端。

服務端需要打開 TcpChannel ,這時需要定義調用的類,RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteCalculator), "RemoteCalculator", WellKnownObjectMode.Singleton); ,這個函數的一個參數就是注冊的類,第二個函數是調用的這個類使用什么名稱,一般都是使用類的名稱,最后一個參數可以在一個連接給一個實例。所以在庫的類不能在構造函數需要傳入

客戶端調用的"tcp://" + "127.0.0.1" + ":" + RemoteCalculator.Port + "/RemoteCalculator"最后一個RemoteCalculator就是服務端注冊的第二個函數。

那么這個功能的作用是什么?因為 x64 程序不能調用 x86 的庫,所以可以用這個方法在 x64 的程序調用其他平臺的庫,因為進程運行的平臺不一樣,但是通信是相同。

其他的功能我沒有使用,我就使用打開服務,調用他的函數,所以如果大家遇到問題,不要來問我。如果按照我的代碼無法運行,可以發郵件給我,我發源代碼給你

代碼下載:點擊這里

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
69影院欧美专区视频| 一本一道久久a久久精品逆3p| 亚洲人成电影网站色xx| 欧美日韩国产一中文字不卡| 日韩成人中文电影| 国产欧美精品xxxx另类| 亚洲欧美第一页| 日韩电影中文字幕一区| 国产成人精品久久二区二区91| 中文字幕亚洲欧美一区二区三区| 国产美女直播视频一区| 精品视频在线播放色网色视频| 日韩欧美在线视频免费观看| 国产精品专区h在线观看| 91老司机精品视频| 亚洲春色另类小说| 日韩精品在线第一页| 亚洲视频网站在线观看| 欧美激情一级二级| 国产成人亚洲综合| 亚洲毛片在线看| 亚洲免费成人av电影| 欧美xxxx14xxxxx性爽| 亚洲美女免费精品视频在线观看| 97在线精品视频| 国产福利成人在线| 综合欧美国产视频二区| 精品国内亚洲在观看18黄| 日韩精品亚洲元码| 日韩精品在线观看视频| 北条麻妃99精品青青久久| 亚洲国产古装精品网站| 国产亚洲视频在线| 亚洲四色影视在线观看| 欧美日韩在线观看视频| 国产日产欧美精品| 91wwwcom在线观看| 视频一区视频二区国产精品| 国产综合福利在线| 久久国产精品亚洲| 久久精品精品电影网| 亚洲国产一区二区三区四区| 38少妇精品导航| 欧美日韩免费观看中文| 黄色成人在线免费| 欧美成人性生活| 久久99久久99精品中文字幕| 国产一区二区三区毛片| 日av在线播放中文不卡| 国产在线播放91| 日韩精品久久久久久久玫瑰园| 91成人在线视频| 久久久亚洲福利精品午夜| 亚洲国语精品自产拍在线观看| 日韩有码在线电影| 91精品国产综合久久香蕉| 亚洲欧美日韩图片| 欧美极品美女视频网站在线观看免费| 亚洲丁香婷深爱综合| 96sao精品视频在线观看| 国产成一区二区| 国产精品视频一| 日韩经典中文字幕在线观看| 91色精品视频在线| 成人日韩av在线| 欧美在线亚洲在线| 欧美性视频在线| 九九热99久久久国产盗摄| 国产性猛交xxxx免费看久久| 国产精品亚洲第一区| 国产婷婷97碰碰久久人人蜜臀| 国产精品久在线观看| 97视频国产在线| 欧美成人精品不卡视频在线观看| 色与欲影视天天看综合网| 亚洲最大激情中文字幕| 久久久精品999| 黑人极品videos精品欧美裸| 成人黄色av网| 欧美国产极速在线| 最近2019年日本中文免费字幕| 亚洲国产精品一区二区久| 欧美日韩一区免费| 久久精品国产2020观看福利| 亚洲视频999| 日韩成人小视频| 精品久久久久久久久国产字幕| 97精品视频在线观看| 日本成人黄色片| 日韩av免费观影| 国产精品r级在线| 这里只有视频精品| 97视频在线观看成人| 中文字幕久久精品| 欧美性色视频在线| 久久香蕉频线观| 亚洲毛片在线观看.| 日韩成人久久久| 国产一区二区三区在线播放免费观看| 亚洲免费视频在线观看| 九九热99久久久国产盗摄| 国产在线精品一区免费香蕉| 久久久国产视频| 欧美精品日韩www.p站| 疯狂蹂躏欧美一区二区精品| 国产小视频国产精品| 日韩精品免费视频| 国产欧美精品一区二区三区-老狼| 久久精品视频免费播放| 九九九热精品免费视频观看网站| 在线日韩欧美视频| 欧美性生交大片免费| 国产97免费视| 亚洲国产私拍精品国模在线观看| 国产精品青青在线观看爽香蕉| 欧美黄色性视频| 亚洲国产成人av在线| 国产亚洲欧洲高清| 欧美成人黑人xx视频免费观看| 91社影院在线观看| 日韩精品丝袜在线| 精品中文字幕视频| 日韩美女免费观看| www.欧美精品| 日韩精品久久久久久久玫瑰园| 久久久久久久久中文字幕| 欧美国产日韩一区二区三区| 亚洲精品久久久久久下一站| 亚洲xxxx18| 5566成人精品视频免费| 亚洲视频一区二区三区| 国产做受69高潮| 色yeye香蕉凹凸一区二区av| 国产精国产精品| 91丝袜美腿美女视频网站| 亚洲欧美在线第一页| 日韩av成人在线观看| 日韩不卡在线观看| 欧美性猛交xxxx| 精品网站999www| 成人乱色短篇合集| 亚洲精品电影在线| 激情av一区二区| 国产成人精品一区二区三区| 欧美综合国产精品久久丁香| 亚洲欧洲国产一区| 色老头一区二区三区在线观看| 欧美丰满少妇xxxxx做受| 日韩一区二区av| 欧美美女操人视频| 欧美极品少妇xxxxⅹ裸体艺术| 久久99精品久久久久久青青91| 91av视频在线观看| 日韩精品高清在线观看| 久久影视电视剧凤归四时歌| 精品高清美女精品国产区| 亚洲四色影视在线观看| 国产成人精品久久久| 国产美女被下药99| 国产欧美日韩专区发布| 日韩欧美成人网| 欧美日韩中文字幕在线| 亚洲国产中文字幕在线观看| 亚洲va欧美va国产综合剧情|