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#子线程执行完后,调用主线程的方法的更多相关文章

  1. C#子线程执行完后通知主线程(转)

    其实这个比较简单,子线程怎么通知主线程,就是让子线程做完了自己的事儿就去干主线程的转回去干主线程的事儿.  那么怎么让子线程去做主线程的事儿呢,我们只需要把主线程的方法传递给子线程就行了,那么传递方法 ...

  2. c#子线程执行完怎么通知主线程(转)

    定义一个委托实现回调函数 public delegate void CallBackDelegate(string message); 程序开始的时候 //把回调的方法给委托变量 CallBackDe ...

  3. C#子线程执行完后通知主线程

    其实这个比较简单,子线程怎么通知主线程,就是让子线程做完了自己的事儿就去干主线程的转回去干主线程的事儿. 那么怎么让子线程去做主线程的事儿呢,我们只需要把主线程的方法传递给子线程就行了,那么传递方法就 ...

  4. Java主线程在子线程执行完毕后再执行

    一.join() Thread中的join()方法就是同步,它使得线程之间由并行执行变为串行执行. public class MyJoinTest { public static void main( ...

  5. Python开发【笔记】:关于子线程(子进程)与主线程(主进程)的关联

    前言: 主要分析下面的问题: 主线程启线程  主线程执行完毕,会关闭子线程吗? 子线程启线程  主线程执行完毕,会结束吗? 主进程启动进程,主进程执行完毕,会怎样? 子进程启动进程,进程执行完毕,又会 ...

  6. java多线程实现主线程等待子线程执行完问题

    本文介绍两种主线程等待子线程的实现方式,以5个子线程来说明: 1.使用Thread的join()方法,join()方法会阻塞主线程继续向下执行. 2.使用Java.util.concurrent中的C ...

  7. 【转载】Delphi7从子线程中发送消息到主线程触发事件执行

    在对数据库的操作时,有时要用一个子线程来进行后台的数据操作.比如说数据备份,转档什么的.在主窗口还能同是进行其它操作.而有时后台每处理一个数据文件,要向主窗口发送消息,让主窗口实时显示处理进度在窗口上 ...

  8. 当前Activity的onPause执行完后,调用Paused接口

    目录 前言 详细流程分析 activityPaused:1843, ActivityTaskManagerService activityPaused:4930, ActivityRecord com ...

  9. c#子线程执行完怎么通知主线程

    定义一个委托实现回调函数 public delegate void CallBackDelegate(string message); 程序开始的时候 //把回调的方法给委托变量 CallBackDe ...

随机推荐

  1. AIX—日常运维命令总结

    1. 查看AIX服务器的物理构造信息,包括服务器网络配置信息 # prtconf # ifconfig -a # lsattr -E -l mem0 :查看系统内存大小 # netstat -in : ...

  2. centos7静黙安装Oracle11.2.0软件响应文件oracle_install.rsp

    oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 oracle.i ...

  3. Networking POJ - 1287

    题目链接:https://vjudge.net/problem/POJ-1287 思路:最小生成树板子题 #include <iostream> #include <cstdio&g ...

  4. Bootstrap基础学习 ---- 系列文章

    [Bootstrap基础学习]05 Bootstrap学习总结 [Bootstrap基础学习]04 Bootstrap的HTML和CSS编码规范 [Bootstrap基础学习]03 Bootstrap ...

  5. MapReduce 简单开发

    先给出 maven 依赖配置 <properties> <hadoop.version>2.6.0</hadoop.version> </properties ...

  6. turtle模块

    turtle(海龟)绘图用法 import turtle -->调出turtle库 setup()-->设置窗体大小和位置 turtle.setup(width,height,startx ...

  7. JDOJ 2197: 校门外的树

    JDOJ 2197: 校门外的树 题目传送门 Description 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米. 我们可以把马路看成一个数轴,马路的一端在数轴1的位置,另一 ...

  8. 【Mybatis】传入参数 对象+单参

    Integer update( @Param(value="bean") TXNJSTXNDetailTBBean bean, @Param(value="table&q ...

  9. qhclass

    http://www.qhclass.com/classroom/62/courses

  10. Pandas | 25 文件读写

    Pandas I/O API是一套像pd.read_csv()一样返回Pandas对象的顶级读取器函数. 读取文本文件(或平面文件)的两个主要功能是read_csv()和read_table().它们 ...