C#、CShap用定时器改变当前窗口状态栏上的时间
如题。该怎么实现!?老是说这个线程不在控件所在的线程!怎么办,求指教。因为我不是学C#的,这方面不知道该怎么办...
如题。
该怎么实现!?
老是说 这个线程不在 控件所在的线程!
怎么办,求指教。
因为我不是学C#的,这方面不知道该怎么办 展开
该怎么实现!?
老是说 这个线程不在 控件所在的线程!
怎么办,求指教。
因为我不是学C#的,这方面不知道该怎么办 展开
展开全部
~~~ 如下几种方法
一 是 已有的timer控件, 只要设置好时间, 然后处理 Tick 事件即可, 在tick事件里面更新时间.
二 是 用线程, 开一新线程. 然后调用并设置时间, 代码类似于如下 没有.net 环境,~ 没法写具体代码了~~~.
boolean flag = true;
while(flag)
{
thread.sleep(休眠时间, ms单位);
setVal();
}
private void setVal(){
if(control.invokeRequired)
{
control.invoker(xxxxxxxxxxxx);
return;
}
control.Text = "xxxxxxxxxxx";
}
一 是 已有的timer控件, 只要设置好时间, 然后处理 Tick 事件即可, 在tick事件里面更新时间.
二 是 用线程, 开一新线程. 然后调用并设置时间, 代码类似于如下 没有.net 环境,~ 没法写具体代码了~~~.
boolean flag = true;
while(flag)
{
thread.sleep(休眠时间, ms单位);
setVal();
}
private void setVal(){
if(control.invokeRequired)
{
control.invoker(xxxxxxxxxxxx);
return;
}
control.Text = "xxxxxxxxxxx";
}
追问
请问里面参数填什么control.invoker(xxxxxxxxxxxx);?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的问题就是定时器所在的线程不是创建这个控件的主线程,操作控件时,使用invoke函数,这个baidu一下就出来了。
大概样子就是
if(control.InvokeRequired)
{
control.invoke(………………)
}
else
{
}
大概样子就是
if(control.InvokeRequired)
{
control.invoke(………………)
}
else
{
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是winform吧, 你要用 System.Windows.Forms.Timer ,这个计时器是在 当前 窗口所在的线程内执行的! 不过精度最小为 55毫秒,一般够用了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
也有大哥不会的???哇哈哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询