最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用命名管道Pipe進行進程通信實例詳解

 更新時間:2020年12月29日 11:02:18   作者:櫻花花  
這篇文章主要介紹了C#使用命名管道Pipe進行進程通信實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1.新建解決方案NamedPipeExample 新建兩個項目:Client和Server,兩者的輸出類型均為“Windows 應用程序”。整個程序的結構如下圖所示。

在這里插入圖片描述

此Form1為Client的窗體,如下圖所示。

為

后端代碼,如下。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.IO;
using System.IO.Pipes;
using System.Security.Principal;

namespace Client
{
  public partial class Form1 : Form
  {
    NamedPipeClientStream pipeClient =
      new NamedPipeClientStream("localhost", "testpipe", PipeDirection.InOut, PipeOptions.Asynchronous, TokenImpersonationLevel.None);
    StreamWriter sw = null;
    public Form1()
    {
      InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
      try
      {
        pipeClient.Connect(5000);
        sw = new StreamWriter(pipeClient);
        sw.AutoFlush = true;
      }
      catch (Exception ex)
      {
        MessageBox.Show("連接建立失敗,請確保服務端程序已經被打開。");
        this.Close();
      }
    }

    private void btnSend_Click(object sender, EventArgs e)
    {
      if (sw != null)
      {
        sw.WriteLine(this.txtMessage.Text);
      }
      else
      {
        MessageBox.Show("未建立連接,不能發(fā)送消息。");
      }
    }
  }
}

此Form1為Server的窗體,如下圖所示

在這里插入圖片描述

后端代碼,如下。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.IO.Pipes;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Server
{
  public partial class Form1 : Form
  {
    NamedPipeServerStream pipeServer =
      new NamedPipeServerStream("testpipe", PipeDirection.InOut, 1, PipeTransmissionMode.Message, PipeOptions.Asynchronous);
    public Form1()
    {
      InitializeComponent();
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }

    private void Form1_Load(object sender, EventArgs e)
    {
      ThreadPool.QueueUserWorkItem(delegate
      {
        pipeServer.BeginWaitForConnection((o) =>
        {
          NamedPipeServerStream pServer = (NamedPipeServerStream)o.AsyncState;
          pServer.EndWaitForConnection(o);
          StreamReader sr = new StreamReader(pServer);
          while (true)
          {
            this.Invoke((MethodInvoker)delegate { lsvMessage.Text = sr.ReadLine(); });

          }
        }, pipeServer);
      });
    }

    private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
    {

    }
  }
}

先運行Server再運行Client

到此這篇關于C#使用命名管道Pipe進行進程通信實例詳解的文章就介紹到這了,更多相關C# Pipe進程通信內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • VS2015為console.readkey添加代碼片段的方法

    VS2015為console.readkey添加代碼片段的方法

    這篇文章主要介紹了VS2015為console.readkey添加代碼片段的方法,需要的朋友可以參考下
    2016-12-12
  • C# 中的List.Sort()--集合排序方法全面解析

    C# 中的List.Sort()--集合排序方法全面解析

    這篇文章主要介紹了C# 中的List.Sort()--集合排序方法全面解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • c#線程間傳遞參數詳解

    c#線程間傳遞參數詳解

    本篇文章主要是對c#中的線程間傳遞參數進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • C#使用doggleReport生成pdf報表的方法

    C#使用doggleReport生成pdf報表的方法

    這篇文章主要介紹了C#使用doggleReport生成pdf報表的方法,結合實例形式分析了C# doggleReport安裝及使用具體操作技巧,需要的朋友可以參考下
    2017-06-06
  • C#?變量,常量數據類型詳情

    C#?變量,常量數據類型詳情

    這篇文章主要介紹了C#?變量,常量數據類型詳情,常量是指在程序運行中不能改變的數據,定義一個常量與定義一個變量過程類似,只是多加一個關鍵詞const
    2022-07-07
  • C#實現順序隊列和鏈隊列的代碼實例

    C#實現順序隊列和鏈隊列的代碼實例

    今天小編就為大家分享一篇關于C#實現順序隊列和鏈隊列的代碼實例,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • C#結合JS修改解決KindEditor彈出層問題

    C#結合JS修改解決KindEditor彈出層問題

    KindEditor 是一款出色的富文本HTML在線編輯器,這里我們講述在使用中遇到的一個問題,在部署到某些 WEB 應用項目中,點擊類似彈出層功能時,只顯示了遮罩層,而內容層則定位無法正確顯示,所以本文給大家介紹了C#結合JS 修改解決 KindEditor 彈出層問題
    2024-06-06
  • C#使用StopWatch獲取程序毫秒級執(zhí)行時間的方法

    C#使用StopWatch獲取程序毫秒級執(zhí)行時間的方法

    這篇文章主要介紹了C#使用StopWatch獲取程序毫秒級執(zhí)行時間的方法,涉及C#操作時間的相關技巧,需要的朋友可以參考下
    2015-04-04
  • C#利用Task實現任務超時多任務一起執(zhí)行的方法

    C#利用Task實現任務超時多任務一起執(zhí)行的方法

    這篇文章主要給大家介紹了關于C#利用Task實現任務超時,多任務一起執(zhí)行的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友下面來一起看看吧。
    2017-12-12
  • 圖文詳解C#中的協(xié)變與逆變

    圖文詳解C#中的協(xié)變與逆變

    “協(xié)變”是指能夠使用與原始指定的派生類型相比,派生程度更大的類型,“逆變”則是指能夠使用派生程度更小的類型,這篇文章主要給大家介紹了關于C#中協(xié)變與逆變的相關資料,需要的朋友可以參考下
    2022-02-02

最新評論

都江堰市| 泸西县| 牡丹江市| 兴安县| 长泰县| 麻城市| 阿巴嘎旗| 汝城县| 泸水县| 锦屏县| 宝鸡市| 莱州市| 图片| 文水县| 安图县| 阜阳市| 桃园县| 棋牌| 曲水县| 栾川县| 丹巴县| 吉林市| 边坝县| 双鸭山市| 阿勒泰市| 姚安县| 江达县| 商都县| 武胜县| 丰宁| 皋兰县| 云南省| 乌拉特中旗| 靖远县| 萨嘎县| 临城县| 湛江市| 漠河县| 全南县| 怀集县| 兰坪|