C#子线程执行完后,调用主线程的方法
private delegate void CheckVersionNumber_CallBack(string str);//定义一个为委托 用于 检测版本 //检测版本
private void m_CheckVersionNumber(string strVersionNumber)
{
try
{
CheckVersionNumber_CallBack CallBack = new CheckVersionNumber_CallBack(Thread_CheckVersionNumber_CallBack); //把方法赋值给委托
Thread th = new Thread(m_Thread_CheckVersionNumber);
th.IsBackground = true;
th.Start(CallBack);//将委托传递到子线程中
}
catch (Exception ex)
{
MessageBox.Show("m_CheckVersionNumber 检测版本时出错! " + strVersionNumber +" "+ ex.Message.ToString());
} }
//子线程执行
private void m_Thread_CheckVersionNumber(object obj)
{
string strVersionNumber = this.Text; clsWebSubmit objPost = new clsWebSubmit();
string strUrl = clsConfig.CheckVersionNumberUrl;
string strParam = "version_number=" + strVersionNumber;
string strResult = objPost.m_PostSubmit(strUrl, strParam); Newtonsoft.Json.Linq.JObject jsonStr = Newtonsoft.Json.Linq.JObject.Parse(strResult);
string str = jsonStr["result"].ToString().Trim();// CheckVersionNumber_CallBack CallBack = obj as CheckVersionNumber_CallBack;//强转为委托
CallBack(str);
}
//主线程的方法
private void Thread_CheckVersionNumber_CallBack(string str)
{
if (this.lstHttpEvent.InvokeRequired == true)
{
ReceiveMsgModel Msg = new ReceiveMsgModel(Thread_CheckVersionNumber_CallBack); //invokes为方法名
this.Invoke(Msg, new object[] { str });//不是窗体线程 则 回 窗体线程
}
else
{
if (str == "false")//不是最新的, true为最新的
{
MessageBox.Show("已经有新版本发布,请及时下载更新! ");
this.lstHttpEvent.SelectTab("tabVersion");
}
}
}
C#子线程执行完后,调用主线程的方法的更多相关文章
- C#子线程执行完后通知主线程(转)
其实这个比较简单,子线程怎么通知主线程,就是让子线程做完了自己的事儿就去干主线程的转回去干主线程的事儿. 那么怎么让子线程去做主线程的事儿呢,我们只需要把主线程的方法传递给子线程就行了,那么传递方法 ...
- c#子线程执行完怎么通知主线程(转)
定义一个委托实现回调函数 public delegate void CallBackDelegate(string message); 程序开始的时候 //把回调的方法给委托变量 CallBackDe ...
- C#子线程执行完后通知主线程
其实这个比较简单,子线程怎么通知主线程,就是让子线程做完了自己的事儿就去干主线程的转回去干主线程的事儿. 那么怎么让子线程去做主线程的事儿呢,我们只需要把主线程的方法传递给子线程就行了,那么传递方法就 ...
- Java主线程在子线程执行完毕后再执行
一.join() Thread中的join()方法就是同步,它使得线程之间由并行执行变为串行执行. public class MyJoinTest { public static void main( ...
- Python开发【笔记】:关于子线程(子进程)与主线程(主进程)的关联
前言: 主要分析下面的问题: 主线程启线程 主线程执行完毕,会关闭子线程吗? 子线程启线程 主线程执行完毕,会结束吗? 主进程启动进程,主进程执行完毕,会怎样? 子进程启动进程,进程执行完毕,又会 ...
- java多线程实现主线程等待子线程执行完问题
本文介绍两种主线程等待子线程的实现方式,以5个子线程来说明: 1.使用Thread的join()方法,join()方法会阻塞主线程继续向下执行. 2.使用Java.util.concurrent中的C ...
- 【转载】Delphi7从子线程中发送消息到主线程触发事件执行
在对数据库的操作时,有时要用一个子线程来进行后台的数据操作.比如说数据备份,转档什么的.在主窗口还能同是进行其它操作.而有时后台每处理一个数据文件,要向主窗口发送消息,让主窗口实时显示处理进度在窗口上 ...
- 当前Activity的onPause执行完后,调用Paused接口
目录 前言 详细流程分析 activityPaused:1843, ActivityTaskManagerService activityPaused:4930, ActivityRecord com ...
- c#子线程执行完怎么通知主线程
定义一个委托实现回调函数 public delegate void CallBackDelegate(string message); 程序开始的时候 //把回调的方法给委托变量 CallBackDe ...
随机推荐
- Java中的equals与==
package demo; public class Test { public static void main(String[] args) { String str1 = new String( ...
- MySQL数据物理备份之xtrabackup
percona-xtrabackup 它是开源免费的支持MySQL 数据库热备份的软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份.它不暂停服务创建Innodb热备份: 为mysql ...
- Ningx的基本使用
Ningx的基本使用 user www; worker_processes 2; error_log logs/error.log info; pid logs/nginx.pid; even ...
- 【Android】【问题解决记录】Error obtaining UI hierarchy :Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!
在使用uiautomatorviewer时遇到两类Error obtaining UI hierarchy报错,分别是: Error while obtaining UI hierarchy XML ...
- 使用async进行结构化并发程序开发
异步风格的函数: 继续来学习async相关的东东,对于它其实可以用到函数上,也就是用它可以定义一个异步风格的函数,然后在该函数中再来调用普通的函数,下面来瞅一下: 其实“GlobalScope.asy ...
- centos下的python无法打印中文
Python3中输出中文的方法如下: 方法一:在环境变量中,设置PYTHONIOENCODING=utf-8 以centos为例执行: export PYTHONIOENCODING=utf-8 方法 ...
- wordpress如何添加自增变量(第一篇文章显示摘要后面的只显示标题)
有时我们在调用文章列表的时候需要在前面添加序号看起来比较整齐,如何实现呢?要想精确的控制每篇文章,我们先在循环前定义一个变量 $ashu_i=1 来计数,变量名随便,然后每循环一次,$ashu_i加1 ...
- 【转载】浅析从外部访问 Kubernetes 集群中应用的几种方式
一般情况下,Kubernetes 的 Cluster Network 是属于私有网络,只能在 Cluster Network 内部才能访问部署的应用.那么如何才能将 Kubernetes 集群中的应用 ...
- ubuntu gitclone下载的文件放哪里了
在home主文件夹里面.
- 异常CLRDBG_NOTIFICATION_EXCEPTION_CODE( 0x04242420)
简介 CLRDBG_NOTIFICATION_EXCEPTION_CODE,值为0x0x04242420.此异常在.CLR 4.0的启动路径期间触发,是CLR4.0版本初始化调试服务时向调试器发送消息 ...