日期:2014-05-17  浏览次数:21009 次

C#中timer的用法。。。新手求教
我一开始的程序
 private void SensorSkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            Skeleton[] skeletons = new Skeleton[0];

            using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
            {

                if (skeletonFrame == null) return;
                    
                skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength];
          
                skeletonFrame.CopySkeletonDataTo(skeletons);
                Skeleton skeleton = skeletons.Where(s => s.TrackingState == SkeletonTrackingState.Tracked).FirstOrDefault();
                if (skeleton != null)
                {
                    
                    // Obtain the left knee joint; 
                    Joint  j = skeleton.Joints[JointType.KneeLeft] ;

                   if (j.TrackingState == JointTrackingState.Tracked)
                    {
                       float  a = j.Position.X;
                       float  b = j.Position.Y;
                       float  c = j.Position.Z;
                    }
                }
            }
     }
得到的a,b,c是三个坐标。我想用timer控件,在一段时间后再次执行上面的程序,得到新的坐标A,B,C.然后比较坐标有没有变化。。。
求大神指教。。。

------解决方案--------------------
1、将abc设置为全局变量
2、添加time控件,然后设置时间间隔
3、在time的默认事件中写获得坐标与比较的代码
------解决方案--------------------
引用:
引用:没有必要用锁的
System.Timers.Timer t =