zoukankan      html  css  js  c++  java
  • Concurrency in csharp (Asynchronous, Parallel, and Multithreaded Programming)

    http://stephencleary.com/projects/

        /// <summary>
        /// 
        /// </summary>
        public partial class Form2 : Form
        {
    
            //[ComVisible(false)]
            //public delegate void ParameterizedThreadStart(object objfield);
    
    
    
            /// <summary>
            /// 
            /// </summary>
            public Form2()
            {
                InitializeComponent();
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void Form2_Load(object sender, EventArgs e)
            {
                MyDu du = new MyDu();
    
                Control.CheckForIllegalCrossThreadCalls = false;
                Thread t1 = new Thread(new ThreadStart(TestMethod));
                Thread t2 = new Thread(new ParameterizedThreadStart(TestMethod));
                //Thread t3 = new Thread(new ThreadStart(du.setData));
                ThreadPool.QueueUserWorkItem(new WaitCallback(TaskProc1), new Person { Id = 1, Name = "测试", Count =100 });
    
                du.BegID = 100;
                du.EndID = 20000;
                du.Le1 = this.label3;
                du.Le2 = this.label4;
                Thread t3 = new Thread(new ThreadStart(du.Run));
    
                t1.IsBackground = true;
                t2.IsBackground = true;
                t3.IsBackground = true;
                t1.Start();
                t2.Start("hello");
                t3.Start();
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="x"></param>
            public void TaskProc1(object x)   //执行的任务
            {
                Person person = x as Person;
    
            }
            //
            private delegate void InvokeCallback(string msg);
            //
            private delegate void SetLabelDelegate(string value); 
            /// <summary>
            /// 
            /// </summary>
            void TestMethod()
            {
    
                //InvokeCallbackmsgCallback = new InvokeCallback(m_comm_MessageEvent);
                string v = "geovind du 1";
                this.label1.Text = v;
                //if (this.InvokeRequired)
                //{
                //    SetLabelDelegate d = new SetLabelDelegate(TestMethod);
                //    this.Invoke(d, new object[] { v});
                //}
                //else
                //{
                //    this.label1.Text = v;
                //}
            }
    
            void TestMethod(object data)
            {
                if (this.InvokeRequired)
                {
                    SetLabelDelegate d = new SetLabelDelegate(TestMethod);
                    this.Invoke(d, new object[] { data });
                }
                else
                {
                    string datastr = data as string;
                    this.label2.Text = datastr;
                }
            }
    
        }
    
        public class Person
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public int Count { get; set; }
     
        }
        /// <summary>
        /// 
        /// </summary>
        class MyDu
        {
          
                private int begID;
    
                public int BegID
    
                {
    
                    set{this.begID=value;}
    
                }
    
                private int endID;
    
                public int EndID
    
                {
    
                    set{this.endID=value;}
    
                }
    
                private Label le1;
    
                public Label Le1
                {
                    set { this.le1 = value; }
                }
    
                private Label le2;
    
                public Label Le2
                {
                    set { this.le2 = value; }
                }
               /// <summary>
               /// 
               /// </summary>
                public void Run()
                {
    
                    method(begID, endID, le1, le2);
    
                }
                /// <summary>
                /// 
                /// </summary>
                /// <param name="begin"></param>
                /// <param name="end"></param>
                private void method(int begin,int end,Label labe,Label labe2)
                {
                    labe.Text = begin.ToString();
                    labe2.Text = end.ToString();
                }
    
        }  
    }
    

      

  • 相关阅读:
    弹性盒模型
    CSS3属性
    CSS3选择器
    闭包
    angularjs-select2的使用
    angular 分页插件的使用
    webstorm 破解
    数组和字符串之间的转化
    git 拉取分支代码 合分支
    时间戳转化为时间格式 时间格式转为时间戳
  • 原文地址:https://www.cnblogs.com/geovindu/p/6004357.html
Copyright © 2011-2022 走看看