C# 定时与控件

北方熊 2020-06-02 03:09:37
两个定时任务 两个点击事件 一个控件,设置定时触发点击事件报错
C#线程间操作无效: 从不是创建控件“listtxts”的线程访问它。”

private void bytxz_Click(object sender, EventArgs e)
{
System.Timers.Timer t = new System.Timers.Timer(3000);//实例化Timer类,设置间隔时间为10000毫秒;
t.Elapsed += new System.Timers.ElapsedEventHandler(btn_up_Click);//到达时间的时候执行事件;
t.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;
bytxz.Enabled = false;

}

private void btn_up_Click(object sender, EventArgs e)
{
this.listtxts.Items.Add("开始上传发货");

}
...全文
207 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mingcsharp 2020-06-16
  • 打赏
  • 举报
回复
搞定了,我来晚了吗?能给分吗?下次帮你解决,记得叫我
Kefer2020 2020-06-10
  • 打赏
  • 举报
回复
66666666666
大然然 2020-06-03
  • 打赏
  • 举报
回复
引用 1 楼 杀马特丶蛮牛 的回复:
跨线程了 这样写

this.listtxts.BeginInvoke((Action)delegate ()
                {
                    this.listtxts.Items.Add("开始上传发货");
                });
正解,谢谢你对新人的帮助
新风new 2020-06-02
  • 打赏
  • 举报
回复
工作线程里操作了界面线程。按一楼的用法
ManBOyyy 2020-06-02
  • 打赏
  • 举报
回复
你那個時間控件要用#1樓,還不如用winfrom拖控件那個定時器
assky124 2020-06-02
  • 打赏
  • 举报
回复
WinForm么 ,有个BackgroundWork之类的组件吧。操作UI线程就用Invoke之类的函数
Acme_Thanatos 2020-06-02
  • 打赏
  • 举报
回复
这种的还不如弄个System.Windows.Forms.Timer控件控制
杀马特丶蛮牛 2020-06-02
  • 打赏
  • 举报
回复
跨线程了 这样写

this.listtxts.BeginInvoke((Action)delegate ()
                {
                    this.listtxts.Items.Add("开始上传发货");
                });

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧