zoukankan      html  css  js  c++  java
  • 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;
        }
    }
  • 相关阅读:
    nginx + uwsgi 配置参考
    windows 7 下安装VMWARE 和 red-hat 7 64bit
    js jquery select 操作 获取值,选中选项,增加,修改,删除
    css 圆形头像
    css border 三角形
    网页发起qq临时会话
    js 判断字符串中是否包含某个字符串
    jquery 事件的绑定,触发和解绑
    js click 与 onclick 事件绑定,触发与解绑
    jquery 表单序列化
  • 原文地址:https://www.cnblogs.com/Fooo/p/1612383.html
Copyright © 2011-2022 走看看