问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

急c# 多线程 访问一个变量

发布网友 发布时间:2022-05-19 18:25

我来回答

2个回答

热心网友 时间:2023-10-15 23:47

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;

namespace threadstop
{
class Program
{
static int methodNumber = 1000;
public IList<string> list = new List<string>();
static ManualResetEvent manu = new ManualResetEvent(false);
static void Main(string[] args)
{
Program p = new Program();
p.run();
}
public void run()
{
for (int i = 0; i < 1000; i++)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(TestMethod), i);
}

manu.WaitOne();
Console.WriteLine("finish");
Console.WriteLine(this.list.Count);
Console.Read();
}
public void TestMethod(object state)
{
try
{
for (int i = 0; i < 10000; i++)
{
lock (list)
{
list.Add(i.ToString());
}
}
}
finally
{
if (Interlocked.Decrement(ref methodNumber) == 0)
manu.Set();
}
}
}

//public class Program
//{
// public IList<string> list = new List<string>();
// public void Method()
// {
// for (int i = 0; i < 1000; i++)
// {
// lock (list)
// {
// list.Add(i.ToString());
// }
// }
// }

// public void dosomething()
// {
// for (int i = 0; i < 100; i++)
// {
// Thread thread = new Thread(Method);
// thread.Start();
// }
// }
// static void Main(string[] args)
// {
// Program p= new Program();
// p.dosomething();
// Console.WriteLine(p.list.Count);
// Console.Read();

// }
//}
}

-----------------------------关键代码---------------------------------
lock (list)
{
list.Add(i.ToString());
}

热心网友 时间:2023-10-15 23:48

一个变量或者一个方法在同一时间只能允许一个方法访问,其他线程好像都是自动排队访问的,无需多余编程
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 多个线程去访问同一个类中的变量会产生冲突吗 java 多线程 同时操作一个变量 高分悬赏 c语言程序,多线程对同一int变量进行读写,是否需要加锁?(貌似java中这是原子操作,不必加锁) 工程项目管理信息系统的全新开发模式是指啥 我想咨询一下,我自学考试(第二次)报考本市区还需要办理准考证吗? 请问现在还能报自学考试的报名么?哪里可以报名?我在苏州市区这边,有知道的麻烦告知一声,谢谢! 滴滴打车因个人原因注册失败 橘子皮晒干至少需要多久 怎样使用gift of nature补水面膜 补水面膜应该如何使用效果更好呢? 在一个微信群中有好多人同时说话,想群里给一人说,怎样在内容前加上他的名, 怎么样在众多家人的微信群中不得罪人的说真话? 怎么使用DataTable的select方法来实现多列排序 电脑开机后启动又不启动,一直重复启动显示器没反应,是什么问题 电脑无限重启显示屏没反应 厦门城市规划考试用的是那个出版社出的那本书?有没有具体知道的? 厦门市湖里区长乐路1号附近有什么规划吗? 厦门有地铁吗一共几条线 厦门空间规划布局调整市政府批改需要多久时间 厦门市物业管理若干规定的第五章 法律责任 JAVA多线程,如何写此代码:两个线程对变量i同时操作,线程1对i加5次,线程2对i减5次,往复100次 岳池美团优选公司电话 win10系统怎么换回本地账户 请问我win10把微软账号切换成了本地账号后,怎么样还原回去,也就是怎么样把本地账号切换回微软账号 win10怎么从本地账户切换到 水杯绿色的霉菌是黄曲霉吗? 蜂蜜柠檬水怎样做,越简单越好! 柠檬片自制柠檬水怎么做如何做好吃 食物上长得绿色的细菌是什么菌 什么霉菌是青绿色的 请问谁知道用绿色木霉菌到底是个什么东西啊? 酸牛奶上长得绿色的菌落是啥? C在一个DataTable中,Select方法如何写筛选条件达到过滤出数值型空的值? SMT流程介绍? p薪酬流水违法吗 做工资流水犯法吗 datatable.Select(&quot;1=1&quot;, &quot;&quot;)1=1什么意思 微信定酒店为什么自动取消了 你好,我的手机前段时间清理空间,把一些视频清除了,怎么恢复? 请问大家手机删除到垃圾桶的内容还能恢复吗