• C# :线程中操作多控件 (委托实现异步及同步的方法)


    代码
    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 WindowsApplication1
    {
        
    public partial class Form1 : Form
        {
            
    delegate void SendDelete(SendArgs args);
            
    public Form1()
            {
                InitializeComponent();
            }
            
    private void Form1_Load(object sender, EventArgs e)
            {
                
    this.comboBox1.SelectedIndex = 1;
                
    this.comboBox2.SelectedIndex = 3;


                Thread thread 
    = new Thread(CrossThreadFlush);
                thread.IsBackground 
    = true;
                thread.Start();
            }

            
    private void txt(SendArgs ar)
            {
                
    //根据传过来的comBox值执行一段自定义的动作。。
                MessageBox.Show(ar.str1, ar.str2);
            }

            
    private void CrossThreadFlush()
            {
                
    //while (true)
                
    //{
                    SendArgs args = new SendArgs();
                    
    //
                    
    //这里使用的是匿名委托
                    
    //
                    
    //    this.BeginInvoke((MethodInvoker)delegate{
                    
    //        args.str1 = this.comboBox1.Text;
                    
    //        //
                    
    //        //有几个都可以,在参数类里面加就可以了
                    
    //        //
                    
    //        args.str2 = this.comboBox2.Text;
                    
    //    }, args
                    
    //);

                    
    ////this.BeginInvoke(new SendDelete(InvokeMethod), args);  //异步
                    this.Invoke(new SendDelete(InvokeMethod), args);           //同步
                    txt(args);
                
    //}
            }

            
    void InvokeMethod(SendArgs args)
            {
                args.str1 
    = this.comboBox1.Text;
                
    //
                
    //有几个都可以,在参数类里面加就可以了
                
    //
                args.str2 = this.comboBox2.Text;
            }
        }


        
    public class SendArgs : EventArgs
        {
            
    public string str1;

            
    public string str2;

            
    public string str3;
        }
    }
  • 相关阅读:
    iOS中的HTTPS
    HTTPS抓包之Charles
    组件化开发的一些思考
    Xcode 调试技巧
    iOS崩溃日志分析
    iOS依赖库管理工具之Carthage
    13.类的关系总结
    12.组合(Composition)
    11.聚合(Aggregation)
    10.关联(Association)
  • 原文地址:https://www.cnblogs.com/Fooo/p/1612383.html
Copyright © 2020-2023  润新知