• 关于线程(一)


       主要是怎么监控一个线程正在运行 用if(“线程”!= null)来断定正在运行。

       /// <summary>
            /// 创建循环线程 led_Start
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            static void led_Start()
            {
                int p;
                IntPtr gpiodriver = CreateFile("GIO1:", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
                int bytesReturned = 0;

                while (true)
                {
                    for (int i = 0; i < 4; i++)
                    {
                        p = 0x01 + i;

                        DeviceIoControl(gpiodriver, p, null, 0, null, 0, ref bytesReturned, IntPtr.Zero);
                        Thread.Sleep(200);
                        DeviceIoControl(gpiodriver, p + 3, null, 0, null, 0, ref bytesReturned, IntPtr.Zero);
                    }

                }

            }

            private void button_stop_Click(object sender, EventArgs e)
            {
                IntPtr gpiodriver = CreateFile("GIO1:", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
                if (gpiodriver == (IntPtr)(-1))
                {
                    MessageBox.Show("打开GPIO设备失败!");
                }
                else
                {
                    if (led_start != null)
                    {
                        led_start.Abort();
                        int bytesReturned = 0;
                        DeviceIoControl(gpiodriver, 0x04, null, 0, null, 0, ref bytesReturned, IntPtr.Zero);
                        DeviceIoControl(gpiodriver, 0x05, null, 0, null, 0, ref bytesReturned, IntPtr.Zero);
                        //DeviceIoControl(gpiodriver, 0x06, null, 0, null, 0, ref bytesReturned, IntPtr.Zero);
                        //DeviceIoControl(gpiodriver, 0x07, null, 0, null, 0, ref bytesReturned, IntPtr.Zero);
                    }
                    else
                    {
                        int bytesReturned = 0;
                        DeviceIoControl(gpiodriver, 0x04, null, 0, null, 0, ref bytesReturned, IntPtr.Zero);
                        DeviceIoControl(gpiodriver, 0x05, null, 0, null, 0, ref bytesReturned, IntPtr.Zero);
                       
                    }
                }
            }

  • 相关阅读:
    linux学习 建立静态库,动态库,写简单的makefile
    C++中顶层const和底层const
    BDB (Berkeley DB)数据库简单介绍(转载)
    Java中Map的使用
    Spring MVC 3 深入总结
    nvl,空时的推断和取值
    java堆栈 (转)
    mybatis--面向接口编程
    HDU 4888
    socket编程——一个简单的样例
  • 原文地址:https://www.cnblogs.com/hanjiaxu/p/3096705.html
Copyright © 2020-2023  润新知