• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
张纯睿
博客园    首页    新随笔    联系   管理    订阅  订阅

线程终止问题

http://topic.csdn.net/u/20080429/09/9cfe5204-20b5-40fb-ac12-afdc1e4939e9.html?590511460 

线程终止问题

http://blog.csdn.net/wuyazhe/article/details/1771470

 带有消息机制的线程 - CustomMessageQueue(c#)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace CustomMessageQueue_CSharp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private CustomMessageQueue myMsgQueue;
        private bool CustomMessageProc(ref CustomMessage m)
        {
            if (m.Message == 1)
            {
                MessageBox.Show("我拦截到 id = 1 的消息了。并且,就到此为止了。呵呵");
                return true;
            }
            else
            {
                MessageBox.Show(m.Message.ToString());
            }
            return false;
        }

        private void Button1_Click(object sender, EventArgs e)
        {
            CustomMessage msg = new CustomMessage();
            msg.Message = 1;
            msg.param = "我的自定义消息 ID:1";
            CustomMessageQueue.PostMessage(ref myMsgQueue, ref msg);
        }

        private void Button2_Click(object sender, EventArgs e)
        {
            CustomMessage msg = new CustomMessage();
            msg.Message = 2;
            myMsgQueue.PostMessage(ref msg);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            myMsgQueue = new CustomMessageQueue();
            myMsgQueue.StartThread();
            myMsgQueue.PerTranslateMessage = new CustomMessageQueue.PerTranslateMessageHandler(CustomMessageProc);
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            myMsgQueue.PostQuitMessage();
        }
    }

    自定义消息队列线程
}

  上面是完整的一个程序,包括调用和实现。如果自己使用,可以创建个新的c#工程,添加2个按钮,复制代码即可。

posted @ 2012-09-17 13:29  张纯睿  阅读(161)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3