zoukankan      html  css  js  c++  java
  • 使用消息来处理多线程程序中的一些问题

     今年上半年做项目时遇到了一个问题,就是系统在运行的过程中,点击程序到显示画面,另外一个线程接收到信息需要将画面的局部进行更新。考虑到是跨线程的操作,直接处理的话就会出现错误。因此使用消息的方式来处理,问题得到了解决。现在将示例代码贴出来演示下:

    //自定义消息

    public const int USER = 0x500;

     public const int MYMESSAGE = USER + 1;

    ///重写窗体的消息处理函数DefWndProc,从中加入自己定义消息 MYMESSAGE 的检测的处理入口
            protected override void DefWndProc(ref Message m)
            {
                switch (m.Msg)
                {
                    //接收自定义消息MYMESSAGE

                    case MYMESSAGE:
                        {
                            lb1.Enabled = true;
                            lb1.Visible = true;
                        }
                        break;
                    default:
                        base.DefWndProc(ref m);
                        break;
                }
            }

    //供其它线程调用的方法

    public void CallProcess()

    {

    //other process

    //抛出消息进行跨线程的处理

     Win32API.PostMessage(this.Handle, MYMESSAGE, "", "");

    }

  • 相关阅读:
    监控JVM回收
    linux JDK安装
    linux 免登陆设置
    搭建redis集群总结
    redis开启持久化
    搭建redis主从复制,遇到的问题总结
    Redis配置参数说明
    模板模式
    观察者模式
    适配器模式
  • 原文地址:https://www.cnblogs.com/kevinGao/p/2182520.html
Copyright © 2011-2022 走看看