随笔分类 -  消息机制

摘要:与C++不同,C#语言禁止在创建某个控件的线程外对控件进行访问,否则会引起访问违规的异常。但有些时候,我们的确需要从其他线程对控件,此时就需要借助于Invoke和BeginInvoke之手了。我们先来对Invoke进行介绍。Invoke是控件Control的成员方法,函数有两个重载版本:Invoke(Delegate) 在拥有此控件的基础窗口句柄的线程上执行指定的委托。Invoke(Delegate, object[]) 在拥有控件的基础窗口句柄的线程上,用指定的参数列表执行指定委托。第一个版本用于Invoke不带参数的委托,第二个版本用于Invoke带参数的委托,没有实质的区别。Invoke 阅读全文
posted @ 2011-12-09 15:01 CoolNick 阅读(1241) 评论(1) 推荐(0)
摘要:消息机制是windows程序的基础。windows程序都是消息驱动,也就是说,在接收到消息时,才根据消息进行相应的动作。Windows程序的核心就是那一段经典的消息循环:MSG msg;while(GetMessage (&msg, NULL, 0, 0)){ TranslateMessage(&msg); DispatchMessage (&msg);}这段代码不断地从消息队列中取出消息,然后调用相应的消息处理函数,对消息进行处理。当这个循环退出的时候,整个程序也就退出了。对于有图形界面的程序来说,系统会在界面需要刷新的时候,向消息队列插入WM_DRAW这个消息,Ge 阅读全文
posted @ 2011-12-09 14:54 CoolNick 阅读(406) 评论(0) 推荐(0)