如何新开一个线程来刷新label1.Text ??

问题描述

请教各位前辈:如何新开一个线程来刷新label1.Text??1.创建Thread需要一个Method2.这个Method要求无参3.于是吧它放在一个类Method_Class中,但是,怎么把label1.text传递到类或对象中呢?Function(reflabel1.text)出错,说是label1.text不能这么用!!刚学一段时间,一个项目着急完成,多谢了!!

解决方案

解决方案二:
类是有构造函数的,默认的时候构造函数无参数,您可以在在构造函数加个参数,在实现化时传参数就可以了.
解决方案三:
在该类中定义一个public的属性为Label然后实例化该类后给此属性赋值或者使用委托在线程中抛出事件外面来接收修改Label的时候使用Invoke
解决方案四:
Thread_t=newThread(newThreadStart(reflesh))_t.Start();publicvoidreflesh(){this.lable1.Reflesh();}
解决方案五:
你的意思是要把lablel.1传给Method操作吧可以这样publicclassMethod_class{privateLabelmLb;privatestringmUpdateText="";publicstringUpdateText{set{mUpdateText=value;}}publicMethod_class(Labellb){mLb=lb}publicvoidMethod(){mLb.Text=mUpdateText}}
解决方案六:
不同线程调用控件,为了控件安全,需要使用委托PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickIfThreadPool.QueueUserWorkItem(NewWaitCallback(AddressOfgetItem),ti)ThenThread.Sleep(1000)Me.Text="123"EndIfendsubSubgetItem(ByValstr1AsObject)DimtiAsTaskInfo=CType(str1,TaskInfo)BeginInvoke(NewEventHandler(AddressOfaddMsg),"abc")EndSubSubaddMsg(ByValsenderAsObject,ByValeAsSystem.EventArgs)TextBox1.Text=sender.ToStringEndSub注意,委托不能用于shared声明的方法中,如果上述subgetitem及addmsg声明为sharedsub则不能成功进行委托另,如果只是简单调用,你人工判断觉得调用安全的(比如只有一个线程对控件进行赋值)懒得写这些代码可以在在对控件赋值之前执行这样一句代码,将线程安全的判断关闭:CheckForIllegalCrossThreadCalls=False这代码你放在formload或者main事件中执行,反正在赋值之前调用就OK了
解决方案七:
第2项newThread(newThreadStart(Fun),好像可以传一个object数组进取的说。。。引用楼主yiluweiyi的帖子:

请教各位前辈:如何新开一个线程来刷新label1.Text??1.创建Thread需要一个Method2.这个Method要求无参3.于是吧它放在一个类Method_Class中,但是,怎么把label1.text传递到类或对象中呢?Function(reflabel1.text)出错,说是label1.text不能这么用!!刚学一段时间,一个项目着急完成,多谢了!!

时间: 2024-07-31 22:02:18

如何新开一个线程来刷新label1.Text ??的相关文章

java web应用中新起一个线程 在线程中怎么获取系统登录的数据

问题描述 java web应用中新起一个线程 在线程中怎么获取系统登录的数据 java web应用中新起一个线程 在线程中怎么获取系统登录的数据,系统登录用的是Spring Secrity 解决方案 可以使用缓存,自己写一个缓存类.或者使用Redis.

DataGrid模板中连接后新开一个窗口的问题

问题描述 以下是DataGrid的模板列,<ItemTemplate><asp:HyperLinkText="查看详细"NavigateUrl='<%#"javascript:newwin("NewsDetail.aspx?id="+DataBinder.Eval(Container.DataItem,"id").ToString()+"");"%>'runat="s

JAVA 线程 开启线程 一个类里只开一个线程的简单办法

进程和线程一样,可以多个.进程是静态的,一个进程里可以有多个线程.   起动线程有两个方法:一个是接口RUNABLE,一个是继承THERAD   public class testthread{ public static void main(){ Runner1 r = new Runner1(); Thread t = new Thread(r); t.start; } class Runner1 implements Runnable{ public void run(){ .......

关于多线程问题(新开启的线程里面再开启线程)

问题描述 先说下流程:首先运行主方法MainFun()这个方法会开启5个线程,每个线程调用DoSomething这方法,在DoSomething这个方法里面又会再开启线程(可能会开启多个),然后分别调用A.B.C.D.E5个方法.现在的问题是,我测试的时候,我用一个按钮的单击事件调用MainFun(),发现有时候程序会崩溃(什么错都不报直接关闭了),有时候正常运行,如果我按钮点快了是100%程序会崩溃的.求解决,多线程不会,改怎么解决,还是我写的有问题?主要代码如下:privatevoidMai

多线程-使用多个线程池还是一个线程池

问题描述 使用多个线程池还是一个线程池 最近在技术理论上遇到一个问题,不知道怎么解决. 问题描述:我们交易平台有4个商品(A.B.C.D)需要进行现在交易,交易的核心方法dealorder是 一个加了锁和事务的方法,而且该类是针对每一个商品的,即最多同时可以执行4个dealOrder方法,即每个商品执行一个该方法. @Transactional public synchronized Message dealOrder() CPU核心数是固定的,假如为6核心,目前就存在一个问题, 情况1:假如说

线程-可以在broadcast的onreceive()方法中开一个service吗

问题描述 可以在broadcast的onreceive()方法中开一个service吗 可以在broadcast的onreceive()方法中开一个Service吗? 可以在broadcast的onreceive()方法中开一个Thread吗? 为什么呢? 解决方案 当然可以开启一个服务,服务是四大组件之一,就像可以新建一个activity,广播中可以新开线程,但是不建议这么做,广播生命周期短,线程如果做比较耗时的工作,而广播死掉了,那么线程没做完事也跟着死掉了. 解决方案二: 都可以的,以下是

android-在后台开了一个服务,服务里面有一个线程用来访问服务器获取信息。

问题描述 在后台开了一个服务,服务里面有一个线程用来访问服务器获取信息. 在后台开了一个服务,服务里面有一个线程用来访问服务器获取信息.但是有一个问题我搞不明白,就是访问服务器需要用户名和密码,我使用SharedPreferences保存和获取用户密码,但是当我在其他地方改变SharedPreferences里的值的时候,却发现在服务里的SharedPreferences得到的值却还是之前的没有发生改变,可以和我讲解一下为什么吗? 解决方案 两个操作之前可能有先后问题.你能保证service在你

ython-blinker 接收到消息开的线程执行的函数中 创建了一个定时器线程程序就异常 了

问题描述 blinker 接收到消息开的线程执行的函数中 创建了一个定时器线程程序就异常 了 有没有誰碰到过这样的问题,指点一下,急. 我要实现的是从串口上报数据中发现一些主动上报,如收到短信之类的 然后发送消息调用相应的方法去读取串口数据,读取结束靠的是在指定时间内收到特定的字符串如'OK',所以在函数中又生成一个定时器线程来处理超时的情况.可是这样子有URC上报是消息调用的方法总是不能正常执行,还影响了主线程.

javascript-c# js中 我有个页面 刷新的时候 会出现开一个白色的框框 就像alert(&amp;amp;#39;&amp;amp;#39;)一样

问题描述 c# js中 我有个页面 刷新的时候 会出现开一个白色的框框 就像alert('')一样 c# js中 我有个页面 刷新的时候 会出现开一个白色的框框 就像alert('')一样里面什么没有 我现在就是想屏蔽这个alert 但是有个HC.Alert('')这是我们公司封装的 不需要屏蔽 改怎么做?? 解决方案 你去掉相关alert代码不就好了.如果你确实不想要系统的alert函数,你可以定义alert=function(){}为空函数,经测试firefox,chrome,IE11有效,