我知道我说的很模糊,截图也不好表示,在做一个短信群发器,定时发送,会给用户提供倒计时,当我跳转到别的模块再回到该模块,界面上的计时停止了,意思就是说,停止在“距离发送还有0时10分10秒” ,可是计时在继续,只不过“0时10分10秒”没有变化而已!!! 应该如何解决?
说实话,这种问题不把代码贴出来基本看不出是什么问题。所以如果你真想解决问题的话建议把代码贴出来,事例代码也行。
可能的原因: 跨线程的问题,即非ui线程去访问ui线程里的控件, 你可以在改变界面倒计时的方法上加 this.Invoke
如果,你真想搞好winform,多线程是肯定要学好的,建议你下功夫学一下,不然你在winform上是不会有成就的
找出BUG,修正。
这不算bug 应该需要另一种解决方式 老大说是把timer控件设为静态的,但是我一直没理解
@Ashe: 老大的话是对的,因为他给你钱。
@爱编程的大叔:timer控件怎么设为静态的?我是在工具箱拖得
@Ashe: 这个得问老大了,天知道呢,有钱就是硬道理。
@Ashe: 从工具箱里拖的那都是实例变量,别拖,自己声明一个静态的,如果你老大是对的,那么就可以解决问题了
@Ashe: Timer应该好用啊,你搞一个小程序,什么也不做,就是现实倒计时,然后看还有这个bug不,如果还有,把那个小程序发给我,我看看,谢谢:zzy_0471@163.com
@会长: 仔细看了下代码,感觉不是定时器的问题~
典型的界面线程和后台线程问题,google:winform使用多线程,比如
C# WinForm多线程开发(三) Control.Invoke ... - NET技术
http://dotnet.9sssd.com/winform/art/853
除开线程还有别的解决方式么? 我对线程很敏感
打不开网址
@Ashe: 既然用了定时器,本身就是多线程了,这个应用场景是跳不掉用多线程的。
@arg: 怎么解决? 有解决方法不
@Ashe: 先仔细阅读下搜索到的资料,自己尝试解决咯。非常成熟的东西,不用怕,即使最后时间到了,你们老大一下就搞定了,既然给时间让你自己弄,对你有好处的。