热点推荐

查看: 391|回复: 4
收起左侧

[待解决] winform 中 定时器 委托 , 帮个忙吧!

[复制链接]
  • TA的每日心情
    害羞
    2018-12-28 15:19
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    5

    主题

    30

    帖子

    482

    积分

    Rank: 2Rank: 2

    积分
    482
    发表于 2018-12-15 20:38:47 | 显示全部楼层 |阅读模式

    51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

    您需要 登录 才可以下载或查看,没有帐号?会员注册

    x


    定时器  、委托,  单个的都知道   要在一起用 总是线程报错

       private void button4_Click(object sender, EventArgs e)
            {
                timer_test1.Elapsed += new System.Timers.ElapsedEventHandler(changetext);
                timer_test1.AutoReset = true;
                timer_test1.Enabled = true;
            }


             public void changetext(object source, System.Timers.ElapsedEventArgs e)
             {
                 n += 1;
                 button4.Text = n.ToString();
                 if (n > 1000)
                 {
                     n = 0;
                 }

             }

    报线程  错误  ,知道 用  委托。自己试了好久 ,越试越晕。   其中 把 委托相关代码 去掉了(因为还是报错,没有真正理解)。
    不想用    Control.CheckForIllegalCrossThreadCalls = false;  屏蔽    这次 是时候  认真学学了。

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    窃喜
    2019-3-28 06:11
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    0

    主题

    19

    帖子

    475

    积分

    Rank: 2Rank: 2

    积分
    475

    切换助手验证会员

    发表于 2018-12-16 09:58:08 | 显示全部楼层
    control.invokerequired
    来自安卓客户端来自安卓客户端

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2018-12-28 15:19
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    5

    主题

    30

    帖子

    482

    积分

    Rank: 2Rank: 2

    积分
    482
     楼主| 发表于 2018-12-16 11:33:16 | 显示全部楼层
    这个 知道 , 但是不透 。 能具体些吗?

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    该用户从未签到

    0

    主题

    6

    帖子

    25

    积分

    Rank: 1

    积分
    25
    发表于 2019-1-14 09:31:44 | 显示全部楼层
    注册的timer事件是新建立的一个线程,所以在要用委托,你可以参考下我改的,网上也有很多实例,可以自己对比看看

    public partial class Form1 : Form
        {
             System.Timers.Timer timer_test1=new System.Timers.Timer ();        
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
             
                timer_test1.Enabled = true;
                timer_test1.Start();
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                timer_test1.Elapsed += new System.Timers.ElapsedEventHandler(changetext);
                timer_test1.Interval = 1000;
                timer_test1.AutoReset = true;
            }

            private int n = 0;
            public delegate void BtnDisplay(string msg); //声明委托
            public void changetext(object sender, System.Timers.ElapsedEventArgs e)
            {
                n += 1;
                showmsg(n.ToString ()); //调用委托方法
                if (n > 1000)
                {
                    n = 0;
                }

            }

            private void showmsg(string msg)
            {
                if (button1.InvokeRequired )
                {
                    BtnDisplay BtnDisplay = showmsg;
                    this.Invoke(BtnDisplay ,new object[] { msg});              
                }
                else
                {
                    button1 .Text = msg;

                }
            }
        }

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    可怜
    2019-4-25 08:40
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    7

    主题

    88

    帖子

    799

    积分

    Rank: 7Rank: 7Rank: 7

    积分
    799

    优秀版主荣誉管理论坛元老

    发表于 2019-2-19 11:50:10 | 显示全部楼层
    关键还是InvokeRequired

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    您需要登录后才可以回帖 会员登录 | 会员注册

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    经营性网站备案信息 经营性网站
    备案信息

    中国互联网举报中心 中国互联网
    举报中心

    中国文明网传播文明 中国文明网
    传播文明

    诚信网站

    深圳市市场监督管理局企业主体身份公示 工商网监
    电子标识