Я ищу способ выталкивать большие объемы данных между двумя процессами. Блоки данных представляют собой капли управляемого массива float [].Напишите большой массив float [] в именованный канал (или файл)
В настоящее время я использую именованные каналы для перемещения данных между обоими процессами. Он отлично работает. Но, к сожалению, мне кажется, мне нужно скопировать массив float [] в массив байтов, прежде чем я смогу использовать NamedPipe.Write.
Капли по 128 Мбайт каждый, поэтому я предпочитаю найти решение, которое работает без дополнительного буфера копирования. Есть ли способ добиться того же результата без необходимости делать копию?
Я надеялся на что-то вроде:
unsafe{
fixed(float* fp = myfloatarray){
pipe.UnsafeWrite(fp, ...)
}
}
я тыкать вокруг, чтобы увидеть, если я мог бы получить файл трубы ручку и использовать WriteFile PInvoke. Похоже, что возиться с файловым дескриптором реального управляемого экземпляра namedpipe запрашивает проблемы.
Любые советы приветствуются!
Проверьте это: https://msdn.microsoft.com/en-us/library/system.io.pipes.namedpipeserverstream(v=vs .110) .aspx – CodingGorilla