1

Je développe avec Kinect et j'ai besoin d'effectuer une tâche dans l'événement AllFramesReady. La tâche consiste en beaucoup d'écriture en utilisant un BinaryWriter.Comment faire pour Paralléliser l'événement AllFramesReady Kinect

Je sais que le cadre (couleur, profondeur, squelette) existe pour une courte période de temps.

using (var imageFrame = e.OpenColorImageFrame()) 
{ 
    // Do the heavy task writing tons of bits do a `BinaryWriter` 
} // The frame is no longer available :(

Existe-t-il un moyen de le paralléliser? Ou un truc pour améliorer les performances de mon code?

+0

Dans les exemples de SDK 1.6, 'KinectDepthViewer', dans le projet KinectWpfViewers, effectue sa coloration en profondeur dans un processus parallèle. Ce pourrait être un bon point de départ. Je vais enquêter plus aussi quand je suis à mon ordinateur où je peux accéder au code. –

+0

Merci, je vais enquêter aussi. – Ewerton

Répondre

1

Généralement, ne faites pas le gros du travail dans le gestionnaire d'événements AllFramesReady. Ma suggestion est la suivante: stocker les informations sur le cadre dans une file d'attente, puis utiliser un autre thread pour écrire les informations stockées dans la mémoire du disque. Notez que lorsque le taux d'entrée dans la file d'attente dépasse le taux de sortie de la file d'attente, à un certain moment, vous manquerez de mémoire.