У меня есть такой метод:
static public T ReadStructure<T>(byte[] bytes)
where T : struct
{
int len = Marshal.SizeOf(typeof(T));
IntPtr i = Marshal.AllocHGlobal(len);
try
{
Marshal.Copy(bytes, 0, i, len);
return (T)Marshal.PtrToStructure(i, typeof(T));
}
finally
{
Marshal.FreeHGlobal(i);
}
}
По общему признанию, это не очень быстро - но это не должно быть, в моем случае. Это ваше текущее решение, и вы обнаружили, что издержки на выделение / копирование / выпуск слишком медленные?