多线程并发处理解决方法
多线程并发处理
大家好,请教大家多线程并发的问题,假设有个更新按钮有多个人同时进行操作,我需要对这些人根据点击更新按钮的先后顺序进行排队列,然后按照队列的先后顺序一个一个的进行更新按钮的操作(如果是允许多个进行操作的情况?),小弟对多线程并发编程不是很熟悉,希望大家帮帮忙,谢谢了!
------解决方案--------------------
大家好,请教大家多线程并发的问题,假设有个更新按钮有多个人同时进行操作,我需要对这些人根据点击更新按钮的先后顺序进行排队列,然后按照队列的先后顺序一个一个的进行更新按钮的操作(如果是允许多个进行操作的情况?),小弟对多线程并发编程不是很熟悉,希望大家帮帮忙,谢谢了!
------解决方案--------------------
- C# code
#region 队列测试 /// <summary> /// 队列测试 /// </summary> public class TestQueue { public void TestQueueMethod() { Queue<string> strList = new Queue<string>(); ///向队列加入元素 strList.Enqueue("阳光"); strList.Enqueue("水"); strList.Enqueue("空气"); ///遍历元素 foreach (var item in strList) { Console.WriteLine(item); } ///队长长度 Console.WriteLine(strList.Count); ////取出最先加进去的元素,并删除,充分体现队列的先进先出的特性 ///如队列中无元素,则会引发异常 //string mes = strList.Dequeue(); //Console.WriteLine(mes); ///取出最先入队的元素,但并不删除 string mes = strList.Peek(); Console.WriteLine(mes); ///遍历队列,仍为三个元素 /// foreach (var item in strList) { Console.WriteLine(item); } ///直接获得队列中的某个元素, ///如果索引越界,会引发异常 string s = strList.ElementAt(1); Console.WriteLine(s); ///直接获得队列中的某个元素, ///如果索引越界,则会返回null,但不引发异常 Console.WriteLine( strList.ElementAtOrDefault(5)); } } #endregion
------解决方案--------------------
给你写一个 #5 楼所说的代码,这非常简单。首先要定义一个static的变量:
- C# code
private static object LockFlag= new object();