Фев 6, 2014 - Уроки Visual Basic.NET 3 комментария
Обмен данными между приложениями
Взаимодействовать между различными приложениями можно по разному, например, через сокеты. Но в .NET 4.0 была введена новая функциональность, которая представляет собой создание участка общей разделяемой памяти для приложений.
Основной функционал новой технологии заключается в пространстве имен System.IO.MemoryMappedFiles
Создадим два консольных приложения, одно из которых будет посылать сообщение в общую память, а другое - считывать это сообщение.
Код первого приложения:
Imports System.IO.MemoryMappedFiles Module Module1 Sub Main() Console.WriteLine("Введите сообщение") 'Ввод выражения для записи в общую память Dim message As Char() = Console.ReadLine() 'Размер введенного сообщения Dim size As Integer = message.Length 'Создание участка разделяемой памяти 'Первый параметр - название участка, 'второй - длина участка памяти в байтах: тип char занимает 2 байта 'плюс четыре байта для одного объекта типа Integer Dim sharedMemory As MemoryMappedFile = MemoryMappedFile.CreateOrOpen("MemoryFile", size * 2 + 4) 'Создаем объект для записи в разделяемый участок памяти Using writer As MemoryMappedViewAccessor = sharedMemory.CreateViewAccessor(0, size * 2 + 4) 'запись в разделяемую память 'запись размера с нулевого байта в разделяемой памяти writer.Write(0, size) 'запись сообщения с четвертого байта в разделяемой памяти writer.WriteArray(Of Char)(4, message, 0, message.Length) End Using Console.WriteLine("Сообщение записано в разделяемую память") Console.WriteLine("Для выхода из программы нажмите любую клавишу") Console.ReadLine() End Sub End Module
Метки: данные, обмен данными
AeroWhite
Просмотров: 6 432
Запись опубликована в 09:50