线程结束
怎么在线程结束的时候给textbox赋值,我的界面是这样的。是多个线程,这里我只写了一个。线程指向的方法写在一个类里面。
if (!thread.IsAlive)
{
this.Invoke((EventHandler)(delegate//timer控件启动线程
{
textBox3.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}));
}
------解决方案--------------------可以考虑用微软推荐的异步编程模型,那种方式来写,比较方便
在回调函数被调用时就可以刷新界面了,这时候数据也取下来了
------解决方案--------------------线程函数中最后面写上你的那个invoke不就行了?
------解决方案--------------------这样难道不行?
------解决方案--------------------用 BackgroundWorker这个吧,比较容易操作。
完成后有个事件RunWorkerCompleted 。这把代码写这就行了。
------解决方案--------------------参考这个:http://bbs.csdn.net/topics/390162519
------解决方案--------------------有两种方法:
一是把 TextBox 传到线程中去,然后用 TextBox.Invoke 显示时间
二是把没信号的 AutoResetEvent 传到线程中去,然后用 AutoResetEvent.Set() 设为有信号,在主窗体判断是 if(AutoResetEvent.WaitOne(0)) { 显示时间,删除 AutoResetEvent}
------解决方案--------------------------解决方案--------------------
Invoke就是看不到效果吧,beginInvoke呢?
------解决方案--------------------贴代码吧。。。
------解决方案--------------------