首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于命名管道通信的有关问题

2012-08-11 
关于命名管道通信的问题从网上下了段代码,修改了一下,用于本机上C和C#之间的命名管道通信。可以正常的收发

关于命名管道通信的问题
从网上下了段代码,修改了一下,用于本机上C和C#之间的命名管道通信。可以正常的收发信息

C# code
while (true)            {                Console.WriteLine("请输入信息");                string msg = Console.ReadLine();                           if (msg == "EXIT")                    break;                byte[] msgBuffer = Encoding.UTF8.GetBytes(msg);                IntPtr fileHandle;                while (true)                {                    // 创建命名管道                    fileHandle = NamedPipeNative.CreateFile(pipeName,                        NamedPipeNative.GENERIC_READ | NamedPipeNative.GENERIC_WRITE,                        0, null, NamedPipeNative.OPEN_EXISTING, 0, 0);                    // 创建失败时,跳出循环                    if (fileHandle.ToInt32() != NamedPipeNative.INVALID_HANDLE_VALUE)                        break;                    // 无法打开管道时,不再执行下面的操作                    if (NamedPipeNative.GetLastError() != NamedPipeNative.ERROR_PIPE_BUSY)                    {                        Console.WriteLine("不能打开管道");                        return;                    }                    if (!NamedPipeNative.WaitNamedPipe(pipeName, 20000))                    {                        Console.WriteLine("不能打开管道");                        return;                    }                }


现在有个问题,我收发的是一个结构体,210000字节。我在发送端设一个Button,点一下发送一次结构体。这个时候如果慢点点击,会正常的发送,但如果我快速点击的话,就会出现!NamedPipeNative.WaitNamedPipe(pipeName, 20000)......

我这个快速点击也不是特别快啊......一秒钟最多2,3次吧。

各位高人帮我分析一下,这是个啥情况,该怎么优化一下子..

[解决办法]
不太懂 210000字节 等了20000MS的样子 好像也不会阻塞吧~坐等大牛~

热点排行