在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
using System; using System.Collections.Generic; using System.Text; using LogHandler; using System.Threading; namespace ConsoleApplication5 { class Program { private static List<string> lstShare = new List<string>(); static void Main(string[] args) {
Thread th1 = new Thread(thread1); th1.Start(); Thread th2 = new Thread(thread2); th2.Start();
}
private static void thread1() { //该线程不停地独占列表,并追加数据 while (true) { lock (lstShare) { lstShare.Add("aaa"); } } }
private static void thread2() { //该线程是期望创建一个共享列表的独立镜像,然后对镜像进行费时的操作 while (true) { try { List<string> lstTemp = new List<string>(); lock (lstShare) { lstTemp = lstShare;//如果使用这一句来创建镜像,就会发生异常
#region "正确的做法" //foreach (string item in lstShare) //{ // lstTemp.Add(item); //} #endregion }
foreach (string item in lstTemp) { //do nothing Thread.Sleep(1); } } catch (System.Exception ex) { Console.WriteLine(ex.Message); }
} } } } |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论