博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c#如何跨线程调用窗体控件
阅读量:4303 次
发布时间:2019-05-27

本文共 823 字,大约阅读时间需要 2 分钟。

public 
partial 
c搜索lass 
Form1 : Form
    
{
        
public 
Form1()
        
{
            
InitializeComponent();
            
//方法1:不进行跨线程安全检查
            
//System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
        
}
   
        
private 
void 
button1_Click(
object 
sender, EventArgs e)
        
{
            
Thread th1 = 
new 
Thread(
new 
ThreadStart(CalNum));
            
th1.Start();
        
}
   
        
private 
void 
CalNum()
        
{
            
//button1.Enabled = false;
   
            
int 
result = 0;
            
for 
(
int 
i = 1; i < 100000000; i++)
            
{
                
result += i;
            
}
   
            
SetCalResult(result);
   
            
//button1.Enabled = true;
        
}
   
        
//方法2:检查是否跨线程,然后将方法加入委托,调用委托
        
public 
delegate 
void 
SetTextHandler(
int 
result);
        
private 
void 
SetCalResult(
int 
result)
        
{
            
if 
(label2.InvokeRequired == 
true
)
            
{
                
SetTextHandler 
set 
new 
SetTextHandler(SetCalResult);
//委托的方法参数应和SetCalResult一致
                
label2.Invoke(
set
new 
object
[] { result }); 
//此方法第二参数用于传入方法,代替形参result
            
}
            
else
            
{
                
label2.Text = result.ToString();
            
}
        
}
    
}

转载地址:http://gilws.baihongyu.com/

你可能感兴趣的文章
学习笔记_vnpy实战培训day02
查看>>
学习笔记_vnpy实战培训day03
查看>>
VNPY- VnTrader基本使用
查看>>
VNPY - CTA策略模块策略开发
查看>>
VNPY - 事件引擎
查看>>
MongoDB基本语法和操作入门
查看>>
学习笔记_vnpy实战培训day04_作业
查看>>
OCO订单(委托)
查看>>
学习笔记_vnpy实战培训day05
查看>>
学习笔记_vnpy实战培训day06
查看>>
Python super钻石继承
查看>>
回测引擎代码分析流程图
查看>>
Excel 如何制作时间轴
查看>>
股票网格交易策略
查看>>
matplotlib绘图跳过时间段的处理方案
查看>>
vnpy学习_04回测评价指标的缺陷
查看>>
ubuntu终端一次多条命令方法和区别
查看>>
python之偏函数
查看>>
vnpy学习_06回测结果可视化改进
查看>>
读书笔记_量化交易如何建立自己的算法交易01
查看>>