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. chrome浏览器调用 ajax 提示net::ERR_INCOMPLETE_CHUNKED_ENCODING问题解决方案,以及 Response.Close 和 Response.End 的一些问题。

    近段时间去了一家新公司任职,公司产品是一个网站,但是我发现它不兼容谷歌浏览器,用习惯了chrome的我简直是如鲠在喉.终于我抽出了时间,想纠正这个问题.F12一看,发现谷歌提示:net::ERR_IN ...

  2. c++ c# java 调用 c++ 写的dll

    1. vs 中新建win32 dll 项目   testdll 添加实现文件       test.cpp #include "stdafx.h" #include <ios ...

  3. 使用Graph工具观察FFT波形

    2014年8月1日,经过很长时间的上网查阅资料,走了很多弯路,终于可以成功使用Graph工具仿真波形了,虽然这个的确很简单,但是经过自己摸索出来的,兴奋之情难于言表. 明天就是七夕了,刚和女朋友分手的 ...

  4. 修改订单的收货时间(MySQL)脚本

    需求 下单时间为21:00-23:59,并且收货时间为第二天的订单,将这些订单的收货时间改为第三天: #!/bin/bash ###time:2016-04-26 ###This script is ...

  5. spring mybatis memcached

    applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xm ...

  6. Qt之QMutex

    概述 QMutex 类使得线程之间可序列化,文档中的描述为provides access serialization between threads 它被设计的初衷是用来保护一个对象.数据结构.代码段 ...

  7. lua 代码风格

    参考  http://www.kancloud.cn/kancloud/lua_style_guide/66327 1.命名 1.命名法:小驼峰命名法,大驼峰命名法(Pascal命名法),小下划线命名 ...

  8. REMOVE ONCLICK DELAY ON WEBKIT FOR IPHONE

    Developing on the webkit for iPhone I encountered a curious delay ononClick events. It seems that th ...

  9. 枚举/遍历 一个数组NSArray/NSDictionary

    一,当枚举一个数组的时候: 1.使用 for (id object in array) 如果是顺序枚举 2.使用 for (id object in [arrary reverseObjectEnum ...

  10. eclipse- Web-app verson=2.5 调整将Dynamic Web Module3.0降为2.5

    如果提示cannot change version of project facet Dynamic Web Module to 2.5 1.把Dynamic Web Module复选框,勾选去掉,点 ...