才发现直接操作会抛出异常,百度了下,有说用SendMessage,有说用postMessage,看了很久还是没有研究明白,发贴求助
//启动定时器
System.Timers.Timer aTimer = new System.Timers.Timer();
aTimer.Elapsed += new ElapsedEventHandler(online);
aTimer.Interval = 10000;
aTimer.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
aTimer.Enabled = true;
private void online(object source, System.Timers.ElapsedEventArgs e)
{
WebClient Client = new WebClient();
Stream strm = Client.OpenRead(weburl + "winform/" + "online.asp?cpuid=" + strCpuID);
StreamReader sr = new StreamReader(strm);
string online;
online = sr.ReadLine();
this.label1.Text = online.ToString();//修改label1显示,但抛出异常
}具体如何处理呢?就是用子线程获取在线人数然后显示出来。请给下具体代码,谢谢!
//启动定时器
System.Timers.Timer aTimer = new System.Timers.Timer();
aTimer.Elapsed += new ElapsedEventHandler(online);
aTimer.Interval = 10000;
aTimer.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
aTimer.Enabled = true;
private void online(object source, System.Timers.ElapsedEventArgs e)
{
WebClient Client = new WebClient();
Stream strm = Client.OpenRead(weburl + "winform/" + "online.asp?cpuid=" + strCpuID);
StreamReader sr = new StreamReader(strm);
string online;
online = sr.ReadLine();
this.label1.Text = online.ToString();//修改label1显示,但抛出异常
}具体如何处理呢?就是用子线程获取在线人数然后显示出来。请给下具体代码,谢谢!
解决方案 »
- vs2008 c# 不能调用oralce
- 通过web界面开启本地计算机服务时遇到问题
- 如何对从数据库中取出的表操作
- 异步socket如何控制连接超时?
- 输出字符缓冲区太小问题,小程序,读取文件输出,老报错。
- 求一个关于分隔符的SQL
- 我在cs封装了checkbox ,如果checkbox 设置了checked =checked 这样我取到得值就是全部的,我现在想得到某一个值,我改用chec
- 数据绑定,数据字段后自动加个输入框填值保存
- 请帮我读几行代码好吗?谢谢您!
- 我装了 SharpDevelop ,在编辑时无法“字符敏感”,怎么解决阿??
- 如何用代码调用一个按钮的单击事件呢?(winform程序)
- 快钱。。。。。关于<result>标签
{
MyDelegateUI d = delegate
{
this.label1.Text = online.ToString();
};
label1.Invoke(d);
}
else
{
this.label1.Text = online.ToString();
}
改成
this.label1.Invoke(
new Action(() => { label1.Text = online.ToString(); }),
null);