场景为:点击按钮后,后台运算,运算完更新界面,后台是由子线程完成,但由于子线程无法更新主线程的控件,所以这时候需要调用主线程来更新;
1.按钮点击后调用:
Thread thread=new Thread(calculate);
thread.start();
2,点击完按钮后,子线程开始运算
public void calculate(object obj)//该obj就是回调委托
{
//此次是运算过程,当运算完成后执行以下代码
callbackMethod();
}
3在callbackMethod中,其实还是在子线程,所以在该方法中要获取主线程来更新界面
public void callbackMethod()
{
Application.Current.Dispatcher.Invoke(new Action(()=>
{
//此次是更新界面的代码
}));
}
分享到:
相关推荐
Unity除了一些基本的数据类型,几乎所有的API都不能在子线程中调用,如果项目中有一段很耗时操作,unity可能会出现“卡死...因此针对这个问题再加上查找了一些资料,弄出了一个小工具,可以子线程与主线程的相互访问。
c#子线程如何读取及设置主线程ui的值,自己录的一个小视频,方便理解,比较菜鸟的方法,请勿喷!
由于Windows窗体控件本质上不是线程安全的。因此如果有两个或多个线程适度操作某一控件的状态(set value),则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的bug,包括争用和死锁的情况。...
Unity异步线程调用主线程脚本程序,在Unity中异步线程调用主线程会报错,所以编写了一个Loom
通过窗口传递让主线程触发FIRE事件(子线程不能触发)
下面小编就为大家带来一篇C#子线程执行完后通知主线程的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
一般在winform C/S程序中经常会在子线程中更新控件的情况,桌面程序UI线程是主线程,当试图从子线程直接修改控件属性时会出现“从不是创建控件的线程访问它”的异常提示。 跨线程更新UI控件的常用方法有两种: 1....
串口通信,多线程接收数据,并可以发送数据
print '子线程的运行' t1 = threading.Thread(target=newThread) t1.setDaemon(True) t1.start() 之后我发现用子线程去调用UI线程是行不通的,只能通过信号和槽来实现,于是 首先,定义一个类,让他实现PySide....
通过主线程,调用子线程,然后子线程再调用主线程,通过主线程的两个变量,来判断退出标志,让主线程可以退出。
2、副线程函数中通过Control.Invoke(Delegate d)来通过委托方式来调用处理控件的方法。 线程函数: private void go() { while (b) { listBox1.Invoke(new DDO(cc));//DDO为委托类型 private delegate ...
本文较为深入的分析了android中UI主线程与子线程。分享给大家供大家参考。具体如下: 在一个Android 程序开始运行的时候,会单独启动一个Process。默认的情况下,所有这个程序中的Activity或者Service(Service和 ...
labview2015关于异步调用功能的研究工程,主要用于解决主线程负责快速轮询,多个子线程负责具体的任务处理并反馈给主线程(子线程需要长时间处理任务),解决单纯的可重复VI不能实现并行的功能。
②主线程与子线程通信使用handler,handler可以在子线程中发出消息,在主线程处理消息,从而完成线程之间的通信,即使有多个线程,仍然是一个程序。 ③不同程序之间需要通过aidl通信,通信方式可以有多种,aidl是...
由于耗时的操作会独占系统cpu资源 ,让界面卡死在那里,这时需要考虑多线程方案,将耗时的操作放在主线程之外的线程中执行。该demo通过多线程为主界面卡死提供一种解决方案。
就是在某个线程下使用 CAsyncSocket前一定要调用,就算主线程调用了该函数,在子线程下使用 CAsyncSocket也要先调用该函数,要不会出错。 3) 还要注意的是, Create 方法已经包含了 Bind 方法,如果是以 Create 方法...
3 启动主线程,根据线程个数划分每个线程的下载范围。 4启动下载子线程开始下载,子线程将下载的数据量调用统计类进行累计。 4 通过下载统计类得到下载信息,包括下载速度、下载量、剩余时间估计、完成百分比等等。 ...
史无前例的 java js 无论主线程还是子线程互相调用 超级简单
Python3.x+Pyqt5实现主窗体与子窗体相互传数据、传字符、传值;主要使用了信号与槽的方法。