Каков наилучший способ асинхронного возврата массива из компонента среды выполнения Windows, написанного на C ++ / WinRT, при условии, что IAsyncOperation не допускается в качестве возвращаемого типа, если TResult является массивом?
ЭтоМожно обернуть массив внутри PropertyValue, но как упаковка, так и распаковка массива создают копии, что кажется неэффективным. На данный момент я пишу собственный компонент для хранения com_array (у которого есть конструктор, который позволяет мне перемещаться в com_array) с функцией DetachArray, которая перемещает массив по возвращении вызывающей стороне. Это лучший способ - кажется немного сложным? Кроме того, в этом случае, если я вызываю функцию DetachArray из C #, копируется ли массив или нет? Я не знаю, как работает взаимодействие между управляемой и неуправляемой памятью. Я предполагаю, что использование com_array в отличие от std :: vector как-то связано с этим.