C#中的BackgroundWorker控件+Delegate.Invoke (委托同步调用)

简单代码,记录一下。一个BackgroundWorker控件  backgroundWorkerRefresh +listview控件

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading; namespace CallCenter
{
public partial class MainFrm : Form
{
public bool isStart = false;
public MainFrm()
{
InitializeComponent();
RefreshDisp();
}
private void RefreshDisp()
{
lv.Items.Clear(); for (int i = ; i < ; i++)
{
ListViewItem lvitem = new ListViewItem();
lvitem.SubItems[].Text = i.ToString();
lvitem.SubItems.Add("项目编号" + i.ToString());
lvitem.SubItems.Add("项目名称" + i.ToString());
lvitem.SubItems.Add("项目负责人" + i.ToString());
lvitem.SubItems.Add("项目年度-" + i.ToString());
lvitem.SubItems.Add(DateTime.Now.ToString() + " -" + i.ToString());
lvitem.SubItems.Add(" #" + i.ToString());
lv.Items.Add(lvitem);
} }
private void RefreshDispCH(int ch)
{ L_Status.Text = lv.Items[ch].SubItems[].Text;
lv.Items[ch].SubItems[].Text = "test";
for (int i = ; i < ; i++)
{
lv.Items[ch].SubItems[i].Text = DateTime.Now.ToString() + " -" + i.ToString();
} } public delegate void D_RefreshDisp();
public delegate void D_RefreshDispCH(int ch); private void backgroundWorkerRefresh_DoWork(object sender, DoWorkEventArgs e)
{
do
{
// this.Invoke(new D_RefreshDisp(RefreshDisp)); Thread.Sleep();
this.Invoke(new D_RefreshDispCH(RefreshDispCH), );
} while (isStart); } private void backgroundWorkerRefresh_ProgressChanged(object sender, ProgressChangedEventArgs e)
{ } private void Startbutton_Click(object sender, EventArgs e)
{
Startbutton.Enabled = false;
isStart = true;
backgroundWorkerRefresh.RunWorkerAsync(); }
}
}

C#中的BackgroundWorker控件+Delegate.Invoke (委托同步调用)的更多相关文章

  1. C#中的BackgroundWorker控件

    C#中的BackgroundWorker控件   Keywords: C# .NET BackgroundWorkerSource: http://txw1958.cnblogs.com/ Backg ...

  2. C#线程中安全访问控件(重用委托,避免繁复的delegate,Invoke)总结

    1.第一种,不安全,当线程过多后,timer控件和线程中同时访问窗体控件时,有时会出现界面重绘出错. public frmMain() { InitializeComponent(); System. ...

  3. BackGroundWorker组件使用、Winform控件的Invoke安全调用

    BackgroundWorker是·net里用来执行多线程任务的控件,它允许编程者在一个单独的线程上执行一些操作. 可以通过编程方式创建 BackgroundWorker,也可以将它从"工具 ...

  4. 在C#中子线程如何操作主线程中窗体上控件

    在C#中,直接在子线程中对窗体上的控件操作是会出现异常,这是由于子线程和运行窗体的线程是不同的空间,因此想要在子线程来操作窗体上的控件,是不可能 简单的通过控件对象名来操作,但不是说不能进行操作,微软 ...

  5. C# winform编程中多线程操作控件方法

    private void Form1_Load(object sender, EventArgs e) { Thread newthread = new Thread(new ThreadStart( ...

  6. BackgroundWorker控件

    在我们的程序中,经常会有一些耗时较长的运算,为了保证用户体验,不引起界面不响应,我们一般会采用多线程操作,让耗时操作在后台完成,完成后再进行处理或给出提示,在运行中,也会时时去刷新界面上的进度条等显示 ...

  7. Android中通过WebView控件实现与JavaScript方法相互调用的地图应用

    在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用andro ...

  8. 重写UITableViewCell子类中属性的setter方法来实现隐藏或显示该cell中的某些控件

    重写UITableViewCell子类中属性的setter方法来实现隐藏或显示该cell中的某些控件 为什么会需要这样子的一种方法来实现隐藏或者显示一个cell中的某些控件呢? 其实,隐藏cell中某 ...

  9. [Xcode 实际操作]三、视图控制器-(11)在Storyboard中使用表格控件

    目录:[Swift]Xcode实际操作 本文将演示表格控件在故事板中的使用. 点击[显示或隐藏检查器按钮],再界面右侧打开检查器面板. 在控制器根视图上点击鼠标,以选择该根视图. 现在往根视图中添加一 ...

随机推荐

  1. Linux文件查找

    Linux下查找文件的命令有两个; locate: find : locate这个命令对其生成的数据库进行遍历(生成数据库的命令:updatedb),这一特性决定了查 找文件速度很快,但是locate ...

  2. hive中分号问题

    分号是sql的结束符,在hql中亦如此,但是hive对分号的识别没有那么智能,如下: select concat(';','aa') from lhc limit 1; FAILED: Parse E ...

  3. 5.Struts2中的拦截器

    拦截器是Struts2中的核心,其自带很多很多的拦截器,这里主要介绍一下自定义拦截器,恩多一半情况下呢?我们不需要使用到自定义的拦截器,Struts2本身已经提 供了很多的拦截器供我们使用,对于自定义 ...

  4. matlab的try/catch语句

    http://blog.sina.com.cn/s/blog_6fd1f2350102x2p3.html

  5. object to 字符串json

    package com.beijxing.TestMain; import com.beijxing.entity.Student; import com.google.gson.Gson; impo ...

  6. error-2016-2-15

    错误:该请求包含双重转义序列,而 Web 服务器上配置的请求筛选拒绝双重转义序列原因:一些URL中可能会包含+号等符号,然后IIS7以上的版本会默认拒绝请求此URL,需要进行如下的修改. 解决PHP中 ...

  7. JavaScript 学习小结

    简要的功能点: 是一种轻量级的编程语言. JavaScript 是可插入 HTML 页面的编程代码. JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行. 操作 HTML 元素 d ...

  8. 关于有偿提供拼图响应式后台的通知---------pintuer ui的官方通知(www.pintuer.com)

    拼图响应式前端框架版响应式后台正式发布. 考虑到目前拼图的状况,我们不打算免费开放下载,但也不会收各位朋友1分钱,该版后台将有偿提供给各位给予拼图贡献的朋友. 废话不多说,一切皆以有图有真相,下面上图 ...

  9. 驱动开发学习笔记. 0.04 linux 2.6 platform device register 平台设备注册 1/2 共2篇

    驱动开发读书笔记. 0.04  linux 2.6 platform device register 平台设备注册  1/2 共2篇下面这段摘自 linux源码里面的文档 : Documentatio ...

  10. http2协议翻译(转)

    超文本传输协议版本 2 IETF HTTP2草案(draft-ietf-httpbis-http2-13) 摘要 本规范描述了一种优化的超文本传输协议(HTTP).HTTP/2通过引进报头字段压缩以及 ...