zoukankan      html  css  js  c++  java
  • C# lock

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Threading;

    namespace WindowsFormsApplication18
    {


    public partial class Form1 : Form
    {
    delegate void SetTextCallback(string text);

    public Form1()
    {
    InitializeComponent();
    }

    public void SetText(string text)
    {
    if (this.textBox1.InvokeRequired)
    {
    SetTextCallback d = new SetTextCallback(SetText);
    this.Invoke(d, new object[] { text });
    }
    else
    {
    this.textBox1.Text = this.textBox1.Text + "\r\n" + text;
    }
    }

    private void button1_Click(object sender, EventArgs e)
    {
    textBox1.Text = "";
    Thread[] thd = new Thread[500];
    int intI = 0;
    for (intI = 0; intI < 50; intI++)
    {
    thd[intI] = new Thread(new ParameterizedThreadStart(thdText));
    thd[intI].Name = " Thread" + intI.ToString();
    thd[intI].IsBackground = true;
    thd[intI].Start(intI);
    }
    }

    /// <summary>
    /// 线程调用的方法
    /// </summary>
    /// <param name="obj"></param>

    private void thdText(object obj)
    {
    oper op = new oper();
    int intI = Convert.ToInt32(obj);
    SetText(op.addition());
    }
    }


    public class oper
    {
    private static object obj = new object();
    private static Single slgTotal;
    public string addition()
    {
    lock (obj) //lock (this) 锁定的是当前实例
    {
    int intI = 0;
    slgTotal = 0;
    for (intI = 0; intI <= 50; intI++)
    {
    slgTotal = slgTotal + intI;
    Thread.Sleep(5);
    }
    return slgTotal.ToString() + " thread:" + Thread.CurrentThread.Name;
    }
    }
    }
    }

  • 相关阅读:
    HTTP协议
    MySQL建立主-从服务器双机热备配置
    centOS7安装配置mysql5.7.21
    修改docker镜像的默认存储目录
    docker--学习笔记
    MySQL数据库操作
    zabbix注意事项和常用命令
    CnentOS6.5安装zabbix2.2
    如何查询一个进程下面的线程数(进程和线程区别)
    OSPF与ACL实例
  • 原文地址:https://www.cnblogs.com/yuanchao/p/3217469.html
Copyright © 2011-2022 走看看