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

C#使用命名管道Pipe進(jìn)行進(jìn)程通信實(shí)例詳解

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

1.新建解決方案NamedPipeExample 新建兩個(gè)項(xiàng)目:Client和Server,兩者的輸出類型均為“Windows 應(yīng)用程序”。整個(gè)程序的結(jié)構(gòu)如下圖所示。

在這里插入圖片描述

此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("連接建立失敗,請(qǐng)確保服務(wù)端程序已經(jīng)被打開。");
        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)
    {

    }
  }
}

先運(yùn)行Server再運(yùn)行Client

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

相關(guān)文章

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

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

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

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

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

    c#線程間傳遞參數(shù)詳解

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

    C#使用doggleReport生成pdf報(bào)表的方法

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

    C#?變量,常量數(shù)據(jù)類型詳情

    這篇文章主要介紹了C#?變量,常量數(shù)據(jù)類型詳情,常量是指在程序運(yùn)行中不能改變的數(shù)據(jù),定義一個(gè)常量與定義一個(gè)變量過程類似,只是多加一個(gè)關(guān)鍵詞const
    2022-07-07
  • C#實(shí)現(xiàn)順序隊(duì)列和鏈隊(duì)列的代碼實(shí)例

    C#實(shí)現(xiàn)順序隊(duì)列和鏈隊(duì)列的代碼實(shí)例

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

    C#結(jié)合JS修改解決KindEditor彈出層問題

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

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

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

    C#利用Task實(shí)現(xiàn)任務(wù)超時(shí)多任務(wù)一起執(zhí)行的方法

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

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

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

最新評(píng)論

济阳县| 隆尧县| 隆回县| 和顺县| 永康市| 长沙县| 湄潭县| 大方县| 云阳县| 宜章县| 隆安县| 玉门市| 白银市| 元朗区| 清新县| 县级市| 吴桥县| 沁水县| 六盘水市| 布尔津县| 工布江达县| 双柏县| 河池市| 上虞市| 洛川县| 鄢陵县| 法库县| 黎平县| 高唐县| 白河县| 抚松县| 大兴区| 营山县| 郯城县| 嘉义市| 金华市| 水富县| 义马市| 重庆市| 延边| 珠海市|