当前位置:免费学习网考试资料计算机类内容页

C言语如何利用子线程刷新主线程

2021-09-08 22:50:01 计算机类 访问手机版

  C言语如何利用子线程刷新主线程

  你知道C言语如何利用子线程刷新主线程吗?使用子线程进行时间操作和加法操作,然后刷新主线程的控件显示结果。下面是小编为大家带来的关于C言语如何利用子线程刷新主线程的知识,欢迎阅读。

C言语如何利用子线程刷新主线程

  使用线程操作

  1、实时显示当前时间

  2、输入加数和被加数,自动出现结果

  分析:两个问题解决的.方式一致,使用子线程进行时间操作和加法操作,然后刷新主线程的控件显示结果

  using System;

  using System.Threading;

  using System.Windows.Forms;

  namespace WinThread

  public partial class frmMain : Form

  public frmMain

  InitializeComponent;

  ///

  /// 初始化

  ///

  ///

  ///

  private void frmMain_Loadobject sender, EventArgs e

  // 控件初始化

  this.txtOne.Text = "0";

  this.txtSecond.Text = "0";

  // 显示时间操作

  Thread showTimeThread = new Threadnew ThreadStartGetTime;

  showTimeThread.IsBackground = true;

  showTimeThread.Start;

  // 加法操作

  Thread addThread = new Threadnew ThreadStartAdd;

  addThread.IsBackground = true;

  addThread.Start;

  #region 显示时间操作

  ///

  /// 取得实时时间

  ///

  private void GetTime

  try

  while true

  string currentTime = string.Format"0.1", DateTime.Now.ToLongTimeString,

  DateTime.Now.Millisecond;

  ShowTimecurrentTime;

  Application.DoEvents;

  catch Exception ex

  Console.WriteLineex.Message;

  // 定义显示时间操作委托,用于回调显示时间方法

  delegate void ShowTimeCallBackstring str;

  ///

  /// 实时显示时间

  ///

  ///

  private void ShowTimestring str

  if this.txtCurrentTime.InvokeRequired

  ShowTimeCallBack showTimeCallBack = new ShowTimeCallBackShowTime;

  this.InvokeshowTimeCallBack, new object[] str ;

  else

  this.txtCurrentTime.Text = str;

  #endregion

  #region 加法操作

  ///

  /// 加法操作

  ///

  private void Add

  try

  while true

  int i = Convert.ToInt32this.txtOne.Text.Trim;

  int j = Convert.ToInt32this.txtSecond.Text.Trim;

  ShowResulti + j.ToString;

  Application.DoEvents;

  catch Exception ex

  Console.WriteLineex.Message;

  // 定义加法操作委托,用于回调加法操作方法

  delegate void ShowResultCallBackstring result;

  ///

  /// 显示结果

  ///

  ///

  private void ShowResultstring result

  if this.txtResult.InvokeRequired

  // 写法1

  //ShowResultCallBack showResultCallBack = new ShowResultCallBackShowResult;

  //this.InvokeshowResultCallBack, new object[] result ;

  // 写法2

  //使用委托来赋值

  this.txtResult.Invoke

  //委托方法

  new ShowResultCallBackShowResult,

  new object[] result ;

  else

  this.txtResult.Text = result;

  #endregion