Коллекция 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);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.429 из 5