public void PushPerspective(IProcessor i,Perspective Perspective)
 {
     lock (Verwerkers)
     {
         lock(Verwerkers.Find(i).Next.Value){
             Verwerkers.Find(i).Next.Value.push(Perspective);
         }
     }
 }
 public void registerMesh(Mesh m, Perspective p)
 {
     lock (Perspectieven)
     {
         lock (p)
         {
             lock (m)
             {
                 p.Mesh = m;
             }
         }
         foreach (IMeshListener l in MeshLuisteraars)
         {
             l.updateMeshes(Perspectieven.Where(f => f.Mesh != null).Select(t => t.Mesh).ToList <Mesh>());
         }
     }
 }
 public void registerMesh(Mesh m, Perspective p)
 {
     lock (Perspectieven)
     {
         lock (p)
         {
             lock (m)
             {
                 p.Mesh = m;
             }
         }
         foreach (IMeshListener l in MeshLuisteraars)
         {
             l.updateMeshes(Perspectieven.Where(f => f.Mesh != null).Select(t => t.Mesh).ToList<Mesh>());
         }
     }
 }
        private unsafe void ReaderThread()
        {
            lock(this){
                //Het engelse gedeelte is code van kai
                //Maar omdat de code kris kras door de applicatie verdwijnt
                //Zal niet meer te herkennen zijn wat van hem is of nog maar te zeggen dat het van hem is
                //Toch ter ere van zijn werk noteren we zijn naam Kai.

                //TextWriter tw = new StreamWriter("d:\\temp\\depthdump.txt");
                int[] depth;
                UInt16[] rgb;
                try { this.context.WaitAndUpdateAll(); }catch (Exception) { }
                Perspective p = new Perspective(DateTime.Now);
                GImage.GetMetaData(p.ImgMD );
                GDepth.GetMetaData(p.DepthMD);

                BeeldOpslag.Instance.RegisterPerspective(p);
                LOG.Instance.publishMessage("Start take picture thread ID " + Thread.CurrentThread.ManagedThreadId +" DONE");
            }
        }
 public void RegisterPerspective(Perspective p)
 {
     lock (Perspectieven)
     {
         Perspectieven.Add(p);
     }
     lock (luisteraars)
     {
         IEnumerator<IListener> e = luisteraars.GetEnumerator();
         while (e.MoveNext())
         {
             e.Current.UpdatePerspectives(Perspectieven);
         }
     }
 }