Фев 6, 2014 -
Уроки Visual Basic.NET
3 комментария
Уроки 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 795
Запись опубликована в 09:50