C# 非独占延时函数 非Sleep】的更多相关文章

在C#窗口程序中,如果在主线程里调用Sleep,在Sleep完成之前, 界面呈现出假死状态,不能响应任何操作! 下边实现的是非独占性延时函数,延时过时中界面仍可响应消息: public static void Delay(int milliSecond) { int start = Environment.TickCount; while (Math.Abs(Environment.TickCount - start) < milliSecond) { Application.DoEvents(…
1.示例: using System.Runtime.InteropServices; [DllImport("kernel32.dll")] static extern uint GetTickCount(); static void Delay(uint ms) { uint start = GetTickCount(); while (GetTickCount() - start < ms) { System.Windows.Forms.Application.DoEven…
一.问题描述在一个使用FreeRTOS的工程中,只做了SD卡的驱动,由于RTOS使用了Systick,故非系统延时函数使用的是 DWT中的时钟周期(CYCCNT)计数功能,但是在SD卡驱动中使用了这个非系统延时导致,烧写程序后板子工作正常,而下电再上电后板子无反应,分析排查去掉了这个非系统延时后工作正常. 二.使用环境1)开发环境使用的是MDK5.20,下载器为JLINK:2)软件工程是V6的FreeRTOS模板工程,SD卡驱动也是V6的,非系统延时函数所在文件为V6的 bsp_dwt.c:3)…
VisualStudio中自带有Profile工具进行性能性能分析,其中用得比较多的数据是函数调用时间,它主要有独占样本数和非独占样本数两个指标,关于这两个指标代表的意义,MSDN的解释比较文艺: 非独占样本数: 为函数收集的性能数据的总数,其中包括该函数调用的其他函数的性能数据. 非独占转换次数: 在此函数(包括此函数调用的函数)的所有实例中发生操作系统(转换)事件的次数. 其它性能数据解释可以参看:http://msdn.microsoft.com/zh-cn/library/ms24274…
首先来看这一段代码: #include <iostream> using namespace std; class A{ public: int k; void p1(){ cout<<"p1"<<endl; } }; int main(){ cout<<"test"<<endl; A *a = ; a->p1(); ; } 上面的代码竟然不会出错! using namespace std; clas…
在c++中,我们可以用const来定义一个const对象,const对象是不可以调用类中的非const成员函数,这是为什么呢?下面是我总结的一些原理. 假设有一个类,名字为test代码如下: class test{ int i; public: void print(); test(int i); }; 我们知道c++在类的成员函数中还会隐式传入一个指向当前对象的this指针,所以在test类中,实际的print函数应该是这样的void print(test * this);,这代表一个指向te…
函数非固定参数 1.默认参数: 代码如下: def information_register(name,age,country,sex): print("----注册信息------") print("姓名:",name) print("age:",age) print("国籍:",country) print("课程:",course) information_register("山炮"…
举个例子: 定义了一个类的const实例,怎么让他也能调用非能调用非const成员函数class foo{public:void test1() {cout << "I am not a const member function" << endl;}void test2()const {foo *temp = (foo*)this;//注意这个转换!!!temp->test1();}}; int main() {foo f;f.test2();retur…
昨天发现了一个问题,就是使用对类中的非静态成员函数使用std::bind时,不能像普通函数一样直接传递函数名,而是必须显式地调用&(取地址),于是引申出我们今天的问题:非静态类成员函数指针和普通函数指针有什么区别? 一.C++中对函数到指针的隐式转换 以前在C语言程序设计课上,老师都会说:“函数名就是指向这个函数的指针”.实际上通过查阅cppreference中的隐式转换规则,其中有这么一句关键的话道出了玄机: 函数类型 T 的左值能隐式转换成指向该函数的指针纯右值.这不作用于非静态成员函数,因…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/istend/article/details/34429721 ORA-00937: 非单组分组函数错误 select count(*), t.user_name from sys_user t, sys_department a, sys_dep_type d where t.dep_id = a.dep_id and a.dep_id = d.dep_id and t.recd_is_del =…
1 package face_09; 2 3 /* 4 * 多态时, 5 * 成员的特点: 6 * 1,成员变量. 7 * 编译时:参考引用型变量所属类中的是否有调用的成员变量,有,编译通过:没有,编译失败. 8 * 运行时:参考引用型变量所属类中的是否有调用的成员变量,并运行该所属类中的成员. 9 * 简单说:编译和运行都参考等号左边. 10 * 2,成员函数(非静态). 11 * 编译时:参考引用型变量所属的类中的是否有调用的函数.有,编译通过,没有,编译失败. 12 * 运行时: 参考的是…
QT 的延时函数分为非阻塞延时 和 阻塞型延时 非阻塞延时: void GreenPass3::delaymsec(int msec){    QTime dieTime = QTime::currentTime().addMSecs(msec); while( QTime::currentTime() < dieTime ) QCoreApplication::processEvents(QEventLoop::AllEvents, 100);} 阻塞延时: void GreenPass3::…
转自:http://www.xuebuyuan.com/510594.html 5-3 Linux内核计时.延时函数与内核定时器 计时 1. 内核时钟 1.1   内核通过定时器(timer)中断来跟踪时间流 1.2   硬件定时器以周期性的间隔产生时间中断,这个间隔(即频率)由内核根据HZ来确定,HZ是一个与体系结构无关的常数. 1.3   这个时间间隔通常取1ms到10ms. 2. jiffies计算器 2.1每次当定时器中断发生时,内核内部通过一个64位的变量jiffies_64做加一计数…
sleep延时方法: System.Threading.Thread.Sleep(); //毫秒 在C#窗口程序中,如果在主线程里调用Sleep,在Sleep完成之前, 界面呈现出假死状态,不能响应任何操作! 下边实现的是非独占性延时函数,延时过时中界面仍可响应消息: public static void Delay(int milliSecond) { int start = Environment.TickCount; while (Math.Abs(Environment.TickCoun…
View.performClick();   比如: private Button mButton01;    mButton01 = (Button)findViewById(R.id.myButton1);   mButton01.performClick();   延时函数 SystemClock.sleep(100);…
莫名其妙的错误.使用Systick做的延时. 初始化是这样的: //SysTick配置 SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); if(SysTick_Config(SystemCoreClock/1000))//开Systick中断,配置Systick时钟. { while(1); } 然后: //延时函数.1个nTime相当于时间:1ms. static uint32_t TimingDelay; void Delay(__I…
JavaScript没有像Java的sleep延时函数,所以记录JavaScript的sleep延时函数 function sleep(milliSeconds) { var startTime = new Date().getTime(); while (new Date().getTime() < startTime + milliSeconds); } sleep(10000);//延时10s…
socket异步通信-如何设置成非阻塞模式.非阻塞模式下判断connect成功(失败).判断recv/recvfrom成功(失败).判断send/sendto 博客分类: Linux Socket socket  原文: 将一个socket 设置成阻塞模式和非阻塞模式,使用fcntl方法,即: 设置成非阻塞模式: 先用fcntl的F_GETFL获取flags,用F_SETFL设置flags|O_NONBLOCK; 即: flags = fcntl(sockfd, F_GETFL, 0);    …
文章出处:http://inter12.iteye.com/blog/1430144 MYSQL的全表扫描,主键索引(聚集索引.第一索引),非主键索引(非聚集索引.第二索引),覆盖索引四种不同查询的分析 1.前置条件: 本次是基于小数据量,且数据块在一个页中的最理想情况进行分析,可能无具体的实际意义,但是可以借鉴到各种复杂条件下,因为原理是相同的,知小见大,见微知著! 打开语句分析并确认是否已经打开 Java代码   mysql> set profiling=1; Query OK, 0 row…
Qt不像VC++的win32/MFC编程那样,提供了现成的sleep函数可供调用.Qt把sleep函数封装在QThread类中.子线程可以调用sleep函数.但是如果用户想在主线程实现延时功能,该怎么办呢?方法是自定义sleep延时函数.通过QDateTime来实现时间差. #include <QDateTime> void MainWindow::sleep(int msec)//自定义Qt延时函数,单位毫秒 { QDateTime last = QDateTime::currentDate…
聚集索引.非聚集索引.非聚集唯一索引 我们都知道建立适当的索引能够提高查询速度,优化查询.先说明一下,无论是聚集索引还是非聚集索引都是B树结构. 聚集索引默认与主键相匹配,在设置主键时,SQL Server会默认在主键列创建聚集索引.但是可以手动更改为在任意一个列创建聚集索引,然后在另一个字段或多个字段上定义主键.这时主键将会被作为一个唯一的非聚集索引(唯一索引)被创建.通过指定NONCLUSTERED关键字就可以做到. CREATE TABLE MyTableKeyExample { Colu…
解决上一节中延时函数占CPU使用率(达50%)的第二种方法是利用消息机制,通过API函数MsgWaitForMultipleObjects等待消息或超时的到来,从而避免使用循环检测使CPU占用率过高.完整的改进版Delay函数代码如下: procedure Delay(dwMilliseconds:DWORD); var endTick: DWORD; Event: THandle; begin Timer1.Enabled:=False; Event := CreateEvent(nil,Fa…
//粗延时函数,微秒 void delay_nus(u16 time) { u16 i=0; while(time--) { i=10;  //自己定义 while(i--) ; } } //毫秒级的延时 void delay_nms(u16 time) { u16 i=0; while(time--) { i=12000;  //自己定义 while(i--) ; } } 运用SysTick来实现准确定时: SysTick_Config(SystemCoreClock / 10)   函数的形…
引用:http://blog.chinaunix.net/uid-24343357-id-3271380.html MCLK默认时钟源是DCOCLK,SMCLK默认时钟源也是DCOCLK,DCOCLK默认约为1.1MHZ(1126.4KHz),ACLK默认为32768HZ 系统复位后MCLK和SMCLK的频率在0.8MHz~1.5MHz,即819.2KHz~1536KHz.系统启动后,可以调整RSELx(基本时钟系统控制寄存器1BCSCTL1前3位).DCOx(DCO控制器DCOCTL前5位).…
[CC2530强化实训02]普通延时函数实现按键的长按与短按 [题目要求]      用一个按键实现单击与双击的功能已经是很多嵌入式产品的常用手法.使用定时器的间隔定时来计算按键按下的时间是通用的做法,然而,使用普通的延时函数实现按键单击与双击的区分也是一个快速的处理手段.按键SW1单击的时候,切换D3灯的开关状态:按键SW1双击的时候,切换D4灯的开关状态.其中:      按键SW1-------P1_2      D3灯-----------P1_0(高电平点亮)      D4灯----…
[CC2530强化实训01]普通延时函数实现按键的长按与短按 [题目要求]     用一个按键实现长按与短按的功能已经是很多嵌入式产品的常用手法.使用定时器的间隔定时来进行按键按下的时间是通用的做法,然而对于不太熟悉定时器使用,又没有严格的延时长度的情况下,使用普通的延时函数实现长短按键的区分也是一个不错的选择.按键SW1短按的时候,切换D3灯的开关状态:按键SW1长按的时候,切换D4灯的开关状态.其中: 按键SW1---------P1_2      D3灯-------------P1_0(…
第一类延时函数原型是:(忙等) void ndelay(unsigned long nsecs); void udelay(unsigned long usecs); void mdelay(unsigned long msecs); 说明:内核函数 ndelay, udelay, 以及 mdelay 对于短延时好用, 分别延后执行指定的纳秒数, 微秒数或者毫秒数. 它们涉及到的延时常常是最多几个毫秒. 第二类延时函数原型是:(使进程进入休眠)void msleep(unsigned int m…
STC51几种简单的延时函数 ,* 延时子程序 * * * ******************************************************************************/ void delayms(unsigned char ms) { unsigned char i; while(ms--) { ; i < ; i++); } } ********************************************* . void delay…
boot asio 非阻塞同步编程---非阻塞的accept和receive. 客户端编程: #include<boost/timer.hpp> #include <iostream> #include <boost/asio.hpp> #include <stdlib.h> using namespace boost::asio; using namespace std; #define RECEIVE_BUF_SIZE 100 #define RECEI…
ylbtech-人物-IT-任正非:任正非 任正非,祖籍浙江省浦江县,1944年10月25日出生于贵州省安顺市镇宁县.华为技术有限公司主要创始人兼总裁. 1963年就读于重庆建筑工程学院(现已并入重庆大学),毕业后就业于建筑工程单位.1974年为建设从法国引进的辽阳化纤总厂,应征入伍加入承担这项工程建设任务的基建工程兵,历任技术员.工程师.副所长(技术副团级),无军衔.任正非也因工程建设中的贡献出席了1978年的全国科学大会和1982年的中共第十二次全国代表大会.1987年,任正非集资21000…