你的位置:首页 > 软件开发 > ASP.net > Concurrency in csharp (Asynchronous, Parallel, and Multithreaded Programming)

Concurrency in csharp (Asynchronous, Parallel, and Multithreaded Programming)

发布时间:2016-10-27 17:00:03
http://stephencleary.com/projects/ /// <summary> /// /// </summary> public partial class Form2 : Form { //[ComVisibl ...

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(get='_blank'>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();      }  } }

原标题:Concurrency in csharp (Asynchronous, Parallel, and Multithreaded Programming)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录