摘要: 从异常开始在上一篇文章中,为了提高用户体验,使用delegate构造一个异步操作,但是在这个异步操作里操作UI控件的属性的时候却发生异常。实际上使用delegate构造异步操作这种方式,在背后还是创建了一个worker thread,从不是创建UI的thread里去操作UI元素的属性就会抛出这个异常。不过,如果我们不在Visual Studio里运行这个程序,直接运行,这个异常却不会出现。通过查看异常的StackTrace,发现该异常是在获取Control的句柄时抛出的:at System.Windows.Forms.Control.get_Handle()at System.Windows. 阅读全文
posted @ 2013-05-27 23:42 qjgit 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 在上一篇文章中,我们讨论了消息循环是响应用户输入的根本,还提到了在WinForm中执行耗时操作是因为这个耗时操作与消息循环在同一个UI Thread上,导致不能处理用户的后续响应,造成程序假死。除此之外,还说到了Form中的WndProc方法,说这个方法就是Win32时代那个处理消息的方法的.Net版。那么今天这篇文章我们就来编个小程序来模拟一下这个耗时操作,看看是不是如上一篇所说:耗时操作造成消息循环的临时中断不能响应用户后续输入。程序很简单,就是一个简单的窗体,上面放置一个按钮,按钮里有一个Thread.Sleep(50*1000)模拟耗时操作:public partial class L 阅读全文
posted @ 2013-05-27 23:14 qjgit 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 在WinForm二三事(一)里,我们谈了WinForm上的事件(比如点击啊,双击啊)是借助消息循环,消息分发的机制实现的。但那篇里只是一笔带过。后来有人问我这中间的具体关系是什么呢?那今天我们就来详细谈谈从Win32的Message到WinForm上的Event。Win32中的Hello world要具体了解这个问题,我们先来看看在Win32的时候,使用原生的API(或者叫Native API)如何做个简单的Hello World的小窗体: 1: #include <windows.h> 2: 3: //这就是就受消息,然后处理的地方了 4: LRESULT CALLBACK... 阅读全文
posted @ 2013-05-27 22:09 qjgit 阅读(182) 评论(1) 推荐(0) 编辑
摘要: 在进入正文之前,想请大家先欣赏下面两段代码: 1: //这是一个控制台程序,请先添加System.Windows.Form.dll的引用 2: using System.Windows.Form; 3: 4: public class ConsoleApplicationShowDialog 5: { 6: static void Main() 7: { 8: Form frm = new Form(); 9: frm.ShowDialog(); 10: } 11: } 1: //这是一个控制... 阅读全文
posted @ 2013-05-27 22:07 qjgit 阅读(499) 评论(1) 推荐(1) 编辑
摘要: 打开vs2008命令提示,具体命令如下:Setting environment for using Microsoft Visual Studio 2008 x86 tools.D:\Program Files (x86)\Microsoft Visual Studio 9.0\VC>cd..D:\Program Files (x86)\Microsoft Visual Studio 9.0>cd Common7D:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7>cd IDED:\Program Files ( 阅读全文
posted @ 2012-11-19 11:04 qjgit 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 最近准备学习WP开发了,于是在博客园上开了空间,希望与大家分享开发过程中一些的失与得! 虽然WP的市场占有率目前:2011年10月14日晚,微软发布的最新消息表示,Windows Phone7的表现低于预期。而在2011年4-6月这个季度的数据显示,Windows Phone7的销量只有140万台,市场占有率只有1.3%,已经达到了历史上的新低。而comScore的最新数据也表示,Windows Phone7在美国和欧洲五国的总市场占有率也由2.8%下降到2.2%。 但是相信微软能走出这个低谷,走向更美好的明天! 阅读全文
posted @ 2011-10-28 12:10 qjgit 阅读(367) 评论(3) 推荐(0) 编辑