首页 新闻 搜索 专区 学院

c# winform大神进

0
悬赏园豆:10 [已解决问题] 解决于 2013-04-14 12:43

请教大神。。第一段代码和第二段代码有什么区别。。。????

1.

 private void button1_Click(object sender, EventArgs e)
        {
            tr = new Thread(new ParameterizedThreadStart(Do));
            tr.IsBackground = true;
            tr.Start(this);   

            Application.DoEvents();              

}

        private void Do(object f)
        {

             this.Invoke(new Action(() =>
            {
                .........耗时操作

            }));
         }

 

2.

 private void button1_Click(object sender, EventArgs e)
        {
            tr = new Thread(new ParameterizedThreadStart(Do));
            tr.IsBackground = true;
            tr.Start(this);                

}

        private void Do(object f)
        {

             this.Invoke(new Action(() =>
            {
                Application.DoEvents();

               .............................耗时操作.....
            }));
         }

 

3.去哪里可以查看

Windows消息列表
WM_NULL                         = 0x0000,
WM_CREATE                    = 0x0001,

这些消息的中文意思??请帖网址。。感激

KeVinDurant的主页 KeVinDurant | 初学一级 | 园豆:5
提问于:2013-03-23 19:52
< >
分享
最佳答案
0
收获园豆:5
雨中峰 | 初学一级 |园豆:174 | 2013-03-23 20:27
其他回答(2)
0

你在项目中用反汇编工具或者C盘查找,默认C:\Program Files\Microsoft SDKs\Windows\v8.0A\bin\ildasm.exe

打开反汇编工具加载生成程序集,双击main()里面有相关数据诸如 0x0000这样的编码,也就是磁盘中数据内存地址的反射吧。JIP根据这些查找磁盘地址

收获园豆:5
伏草惟存 | 园豆:1420 (小虾三级) | 2013-03-24 00:23
0

触发消息队列中排队的消息。

参考:http://q.cnblogs.com/q/47023/

        http://q.cnblogs.com/q/47896/

第一段代码:

可能先执行耗时操作,再完成按钮点击事件,也能可能先完成按钮点击事件再执行耗时操作。

由windows调度机制决定。先执行DoEvent(),后调度开启辅助线程的为 后面 那种情况。

第二段代码:

肯定先执行完按钮点击事件,再执行耗时操作。。。详细见上面第二个链接

滴答的雨 | 园豆:3690 (老鸟四级) | 2013-03-24 13:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册