用了wince的sdk
这是我用一个新建的线程绑定的方法
 public void sendInvoke()
        {
            //外循环,实现变角
            for (j = 0; j < cul_time1 + 1 && !stop; )
            {
                //内循环,实现步进
                for (i = 0; i < cul_time2 - 1 && !stop; i++)
                {
                    if (SWITCH == 1 && !stop)
                    {
                        sp.SendData(bytSendArray);//发送数据
                    }                    System.Threading.Thread.Sleep((int)(timer_time1 * 1000));                    if (SWITCH == 1 && !stop)//步进后拍摄
                    {
                        DeviceIoControl(leddriver, LED_ON, IntPtr.Zero, 0, IntPtr.Zero, 0, IntPtr.Zero, IntPtr.Zero);
                        System.Threading.Thread.Sleep(400);
                        DeviceIoControl(leddriver, LED_OFF, IntPtr.Zero, 0, IntPtr.Zero, 0, IntPtr.Zero, IntPtr.Zero);
                    }
                    System.Threading.Thread.Sleep(555);
                }
                j++;
                System.Threading.Thread.Sleep(555);
                timer_time2 = cul_time2 * first_cal_level * 0.5;//内循环次数X单位时间X相对步幅                if (SWITCH == 1 && !stop)
                {
                    sp.SendData(initiBytSendArray);//归位
                }
                System.Threading.Thread.Sleep((int)timer_time2);                //变角后拍摄
                if (!stop && SWITCH == 1 && ((i != cul_time2 - 1 && j != cul_time1 + 1) || (i == cul_time2 - 1 && j != cul_time1 + 1)))
                {
                    sp.SendData(verticalBytSendArray);//发送数据
                }                System.Threading.Thread.Sleep((int)(timer_time1 * 1000));                if (!stop && SWITCH == 1 && ((i != cul_time2 - 1 && j != cul_time1 + 1) || (i == cul_time2 - 1 && j != cul_time1 + 1)))
                {
                    DeviceIoControl(leddriver, LED_ON, IntPtr.Zero, 0, IntPtr.Zero, 0, IntPtr.Zero, IntPtr.Zero);
                    System.Threading.Thread.Sleep(400);
                    DeviceIoControl(leddriver, LED_OFF, IntPtr.Zero, 0, IntPtr.Zero, 0, IntPtr.Zero, IntPtr.Zero);
                }
                System.Threading.Thread.Sleep(555);
            }
        }
如上所示,当stop变量变为true时这个方法就终止了,但问题也来了,中止后我再次启动它,具体说就是在另一个按钮事件里newthread.start(),会出现另一个线程,而上次中止的线程也在活动,而这时候就会互相干扰,当然现象就是LED灯不断的亮,发码乱套了(停一次再开始是有两个线程了,停两次就会有三个)现在我想能不能在停止事件里把这个线程给撤销,可是wince里一直没试出怎么实现,求解决办法