委托+线程 使用例子

股票分时数据获取-东方财富 获取下股票分时数据,分时均价下线,分时成交额等,用于量化t0交易条件还是很不错了的。 阅读详情

        /// <summary>
        /// 委托
        /// </summary>
        private delegate void ThreadDelegate();//用于设置进度条当前值 的委托
        string filter=string.Empty;//选择策略
        Microsoft.Office.Interop.Excel.Application excel = null;//Excel组件
        int rowIndex = 1;//行
        int colIndex = 0;//列
        Microsoft.Office.Interop.Excel._Workbook xWB = null;
        bool flage=false;//控制线程
        DataTable table = null;//数据集
        Thread _thread =null;
        private void ExplortData()
        {
            string name = DoSave();
            if(name!=string.Empty)
            {
                DataSet explords = new DataSet ();
                explords = iQueryFanLiCuiShou.GetFanLiXieYiOfIsGroupMX(filter,ExplorFilter());
                if(explords!=null)
                {
                    flage = true;
                    if(explords.Tables[0].Columns.Contains("IsJTZCType"))
                        explords.Tables[0].Columns["IsJTZCType"].ColumnName="政策类型";
                    if(explords.Tables[0].Columns.Contains("DepartName"))
                        explords.Tables[0].Columns["DepartName"].ColumnName="需方单位";
                    this.progressBar1.Maximum=explords.Tables[0].Rows.Count;

                    try
                    {
                        excel = new Microsoft.Office.Interop.Excel.Application();
                        xWB = excel.Application.Workbooks.Add(true);
                        table = new DataTable ();
                        table = explords.Tables[0];
                        this.progressBar1.Maximum=table.Rows.Count+1;
                        foreach (DataColumn col in table.Columns)
                        {
                            colIndex++;
                            excel.Cells[1, colIndex] = col.ColumnName;
                        }
                    }
                    catch(Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        return;
                    }
                    _thread = new Thread (new ThreadStart(doExport));
                    _thread.Start();
               }
            }
        }

/// <summary>
        /// 在控件句柄线程上执行委托
        /// </summary>
        private void ThreadProcessBar()
        {
            progressBar1.Invoke(new ThreadDelegate(SetPBarValue));
        }
        /// <summary>
        /// 控制进度条进度
        /// </summary>
        private void SetPBarValue()
        {
            if (flage)
                progressBar1.Value = rowIndex;
            else
                progressBar1.Value = 0;
        }
        /// <summary>
        /// 执行导出
        /// </summary>
        /// <param name="ds">要导出的DataSet</param>
        /// <param name="strExcelFileName">要导出的文件名</param>
        private void doExport()
        {
            try
            {                   
                while (flage)
                {
                    foreach(DataRow row in table.Rows)
                    {
                        ThreadProcessBar();
                        rowIndex++;
                        colIndex = 0;
                        foreach (DataColumn col in table.Columns)
                        {
                            colIndex++;
                            excel.Cells[rowIndex, colIndex] =row[col.ColumnName].ToString();
                        }
                    }
                    if(rowIndex==table.Rows.Count+1)
                    {
                        flage=false;
                        rowIndex=1;
                    }
                }
                if(!flage)
                {
                    xWB.SaveCopyAs(saveFileDlg.FileName);
                    xWB.Close(false, null, null);
                    excel.Quit();
                    excel = null;
                    GC.Collect();//垃圾回收
                    MessageBox.Show("导出成功!");
                    ThreadProcessBar();
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                System.Environment.CurrentDirectory =  System.AppDomain.CurrentDomain.BaseDirectory;
            }
        }

 

SAP GR(Group Reporting)合并报表内容及功能简介(五)-合并和抵消 随着合并和收购数量的显著增加,企业在全球经济中面临着诸多挑战。其中最常见的是法律实体与子公司之间缺乏透明度,导致无法以经济高效的方式对账法律实体与子公司之间的公司间交易,从而造成结算出现重大延迟。公司间匹配和对账功能允许用户在关账过程中进行早期分析,以避免公司间差异,并缩短关账时的延迟。公司间匹配和对账功能交易级别匹配和实时对账基于各种组织维度(如公司、利润中心和合并单位)的灵活建模自动差异解决。应用内通信和工作流。与公司间抵销集成。 阅读详情

相关推荐

android so文件攻防实战-美团libmtguard.so反混淆

接下来的代码很多都是这种动态计算跳转地址的。修复结束之后跟踪指令,0x3434处的代码跳到了0x345A,0x345A处的代码主要逻辑是在0x34C6跳到0x34EC通过0x34EC动态计算地址跳到了0x3520,0x3524处的代码跳到了0x365C,0x366E处的代码跳到了0x35A8,0x35A8是JNI_OnLoad的主要逻辑。BEQ和BNE是一对条件相反的跳转,这之前计算出接下来指令的地址0x3430赋值给R4,loc_340C处的代码通过POP指令将R4的值给PC,看0x3430处的代码。

2503_90751938的博客 1383

c#编程之委托、事件与线程

c#编程之委托、事件与线程委托(delegate)事件(event)线程综合实例 委托(delegate) 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。 在C#中使用delegate关键字定义委托,然后使用我们熟悉的函数调用的语法来调用委托...

weixin_44151489的博客 1594

电商项目功能简述

1.电商行业的技术特点 1.技术性 2.技术范围广 3.分布式 4.高并发,集群,负载均衡,高可用 5.海量数据 6.业务复杂 7.系统安全 2.电商行业的模式 B2B:企业到企业,商家到商家.代表:阿里巴巴 B2C:商家到客户.代表:京东.淘宝商城 C2C:客户到客户.淘宝集市 O2O:线上到线下 3.B2C电商系统架构功能模块 4.B2C电商系统架构功能描述 后台管理系统:管理商品、订单、类...

weixin_45116848的博客 9744

委托和线程

一:线程 在.net中提供了两种启动线程的方式,一种是不带参数的启动方式,另一种是带参数的启动的方式。 不带参数的启动方式  如果启动参数时无需其它额外的信息,可以使用ThreadStart来实例化Thread:  带参数的启动方法 带参数,就不能用ThreadStart委托作为构造函数的参数来实例化Thread了,而要 ParameterizedThreadStart委托,和Thr

sunho89的专栏 893

AttifyOS 3.0实战:从固件提取到物联网设备安全评估全流程解析

本文详细解析了使用AttifyOS 3.0进行物联网设备安全评估的全流程。从获取D-Link路由器固件开始,到利用其预置的Binwalk等工具完成固件提取、解包Squashfs文件系统,并深入分析Web源码进行初步安全审计。这套集成系统极大简化了环境配置,让研究人员能专注于漏洞挖掘本身,是物联网安全评估的高效工具箱。

ice55的博客 215

智能硬件产品:做好一款电子硬件产品,工具必不可少

上到战略规划,中至运营策略,下至人性洞察,。最初做产品时,笔者从一开始就陷入到了对工具的痴迷,包括:PS、AutoCAD、PROE、犀牛、Axure、Keyshot、Altium……大概将 2 个多月的时间和精力都消耗在了学习使用工具上。通过工具的运用也确实提高了工作效率,在仅有创意的前提下通过灵活运用工具,一年内便成功申请了多个实用新型专利、设计了多款产品的高保真原型图等。正在上传…重新上传取消。

产品线负责人 1443

C#学习笔记之——委托、线程、事件、lamda表达式

委托的广播和订阅,实现数据传递。带参数的方法需要这样开多线程。Task任务,对线程的封装。Action对委托的封装。delegate委托。

yuejich的博客 1107

Flow Matching03-01:微分方程【微分方程(描述变化规律的方程):包含未知函数和它的导数的方程】【公式解(精确)、数值解(逼近)】

好的,我将从数学角度详细解释Flow Matching,从高中生能理解的基础知识开始,逐步深入到高级概念。

u013250861的博客 219

C# Delegate(委托)与多线程 (转载不易)

与以前VC中创建一个新的线程需要调用AfxBeginThread函数,该函数中第一个参数就是线程函数的地址,而第二个参数是一个类型为LPVOID的指针类型,这个参数将传递给线程函数。我们需要将传递给线程的参数和线程函数包装成一个单独的类,然后在这个类的构造函数中初始化该线程所需的参数,然后再将该实例的线程函数传递给Thread类的构造函数。BeginInvoke 生成异步方法调用。//-----------------------以下为自己写的异步委托的例子------------------------

weixin_42609581的博客 785

【系统分析师】2025年下半年真题:综合知识-答案及详解(回忆版)

本文摘要包含系统分析师考试相关题目解析,主要涵盖软件工程、数据库、网络协议和项目管理等知识点。内容包括:软件再工程与逆向工程的区别(D);GNU GPL开源协议特性(A);TCP/IP协议分层(A、B);数据库范式判定(A、B);前导图进度管理工具(C);系统规划中的数据类识别方法(B、D);关系代数除运算(C);CMM优化级特征(A);回归测试重要性(C)。这些解析帮助理解核心概念和考试重点。

数据知道的博客 6717

基于Python的Booking酒店数据爬虫实战:最新技术与完整代码解析

本文将详细介绍如何使用Python构建一个高效的Booking酒店数据爬虫,涵盖从基础爬取到高级反反爬技术的完整实现。我们将使用最新的Python爬虫技术栈,包括requests-html、Playwright、智能代理轮换等技术,并提供完整的可运行代码示例。文章将深入探讨爬虫的各个组成部分,包括数据提取、存储、反反爬策略以及性能优化等方面。关键词:Python爬虫、Booking数据采集、反反爬技术、Playwright、数据存储。

2201_76125261的博客 936

多线程(一)——委托与多线程

委托与多线程

静心学习,开心生活 1617

Python爬虫实战:采集行业协会、研究机构等平台的政策文件列表与PDF链接批量收集系统,支持自动下载、分类归档和数据库管理(SQLite持久化存储)!

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 640

[C#]线程中处理界面委托的小例子

在多线程中处理界面的响应信息,确实没有单线程那么容易,直接赋值就OK了,必须得通过委托到主线程中才可以处理,这个小DEMO实现了两个线程同时在主界面上进行输入.当初自己怎么也弄不明白这些道理,只要弄出第一个实例,后面的就轻松多了,万事入门难嘛.直接贴代码,解释都在注释里了,其他就不多废话了.         private void button1_Click(object sen

轩辕寒星的专栏 4139

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

多线程,委托例子

多线程: Type text here       class ActiveDate    {        private string _CusID;        private string _Visitor;        private int _ShopNum;        private int _flag = 0;        public int Flag     ...

weixin_33778544的博客 62

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

章鱼哥出品_VB.NET 线程委托应用实例 一个简单的例子让你轻松掌握委托的用法

网上有很多关于线程和委托的问题,大家

zhangyubishoulin的专栏 1万+

DeleGate委托与线程之间的例子讲解

使用接口的方法: using System; public class Student { private IAdviser adviser; public void SetAdviser(IAdviser iadviser) { adviser = iadviser; } priv...

128

调用委托后,资源占用哪个线程的? (一个例子)

创建一个WinForm程序.自带一个Form1.在Form1上放置一个button1创建一个UserControl控件,在控件上放置一个button1,把创建好的控件放置到 Form1上,名称为 UserControl1Form1代码如下:    public partial class Form1 : Form    ...{        public Form1()   

anakin.jin的专栏 1422

理解委托(delegate)及为什么要使用委托

理解委托(delegate)及为什么要使用委托 委托:是一种定义方法签名的类型。当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联。您可以通过委托实例调用方法。 上述为官方说法,理解起来比较难,举个生活中的例子: 某人有三子,让他们各自带一样东西出门,并带回一头猎物。上面一句话可以理解为父亲对儿子的委托:猎物 办法(工具 某工具)-->delegate ...

diaozhuan0403的博客 447

C#子线程执行完后通知主线程的方法

怎么让子线程去做主线程的事儿呢,我们只需要把主线程的方法传递给子线程就行了,那么传递方法就很简单了委托传值嘛; 下面有一个例子,子线程干一件事情,做完了通知主线程 public class Program { //定义一个为委托 public delegate void Entrust(string str); static void Main(string[] args)...

极客神殿 6542

随笔9 - C#下的线程与委托

描述:在线程执行结束后,通过委托来执行下一步的逻辑 C#代码如下: /// /// 定义一个带参数的委托 /// /// protected delegate void ThreadCallBack(object sender); static void Main(string[]

leixf 675

C#网络程序设计1-2:委托实现单线程

图形界面设计如图: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using

博闻强记,慎思笃行 648

C#委托、操作主线程控件编程解读

默认情况下,.NET Framework不允许在一个线程中直接访问另一个线程的控件,因为如果多个线程同时访问某一个控件,会是该控件进入一种不确定的状态。 使用委托(Delegate)和事件(Event)在线程中完成控件的访问。 Windows应用程序中每个控件都有一个Invoke方法,该方法利用委托实现让不是创建控件的线程共享该控件对象。具体用法是先查询控件的InvokeRequired属性值,如果该值为true,说明访问该控件的线程不是当前线程,这时需要利用委托访问控件,否则直接访问控件。

gxuliang601的博客 669

C#委托基础(九)——Invoke与委托

例子一: delegate void AppendStringCallback(string text); private void AppendString(string txt) { this.listView1.Items.Add(txt); } private void ReceiveDate() { ...

weixin_30763397的博客 412

C#使用委托的简单步骤

C#使用委托的简单步骤

songjuntao8的专栏 1481

线程调用主窗体控件(委托)

A、委托定义:    C#用委托来实现事件通知机制。委托相当与c++函数指针。整个过程涉及一个呼叫者,一个被呼叫者,还有就是这个委托。     委托:讲的通俗点,就是在某个时候自己有些事没法做,跟刚好在做些事的人约好说‘你要做你的事的时候顺便帮我把我的事情做了’ B、举例:1、现在你还在上班, 本来约定好今天接孩子回家是你的事(线程)2、你的老婆下班了,要去买菜回家煮饭

1219
上一篇: ExportData类转载
下一篇: Cost Readonly Static关键字简单比较
andycode
博客等级 码龄17年 12粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值