Коллекция SortedList в потоке - C#
Формулировка задачи:
Добрый день. Подскажите пожалуйста
Можно ли использовать значение коллекции SortedList из разных потоков?
Если можно приведите пожалуйста пример, или ссылку на статью как это сделать.
С уважением, Александр.
Решение задачи: «Коллекция SortedList в потоке»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Threading;
public class Example
{
static SortedList<string, string> openWith = new SortedList<string, string>();
static object lock0 = new object();
static object lock1 = new object();
static object lock2 = new object();
public static void Main()
{
openWith.Add("txt", "notepad.exe");
openWith.Add("bmp", "paint.exe");
openWith.Add("dib", "paint.exe");
openWith.Add("rtf", "wordpad.exe");
openWith["test"] = "1";
ThreadPool.QueueUserWorkItem(Potok1, "");
ThreadPool.QueueUserWorkItem(Potok2, "");
int ii = 0;
while (true)
{
ii++;
string ss=ii.ToString();
lock (lock0) { openWith["test"]=ss; }
Console.WriteLine("==== " + ss);
Thread.Sleep(555);
}
}
private static void Potok1(object state)
{
while (true)
{
string ss;
lock (lock1) { ss = openWith["test"]; }
Console.WriteLine("поток 1 " + ss);
Thread.Sleep(333);
}
}
private static void Potok2(object state)
{
while (true)
{
string ss;
lock (lock2) { ss = openWith["test"]; }
Console.WriteLine("поток 2 " + ss);
Thread.Sleep(777);
}
}
}