Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для PomaH
11 / 10 / 3
Регистрация: 01.08.2012
Сообщений: 136

Как обратиться к именованному потоку?

08.02.2015, 13:32. Показов 1133. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
сlass ArhMaster
        {
            List<PulAddToArh> AllPulToAdd = new List<PulAddToArh>();
            struct PulAddToArh
            {
               public string Name;
               public string HtmlCode;
               public PulAddToArh(string _Name, string _HtmlCode)
               {
                   Name = _Name;
                   HtmlCode = _HtmlCode;
               }
            }
                       
            public void AddToArh(string Name, string HtmlCode)
            {
                PulAddToArh temp = new PulAddToArh(Name, HtmlCode);
                AllPulToAdd.Add(temp);
                
            }
           public ArhMaster()
            {
               Thread ThArh = new Thread(() => {
                    Thread.CurrentThread.Name = "ArhMain";
                    while (true)
                    {
                        if (AllPulToAdd.Count > 0)
                        {
                            foreach (PulAddToArh temp in AllPulToAdd)
                            {
 
 
                                using (FileStream fs = new FileStream("AllHtml.zip", FileMode.OpenOrCreate))
                                {
                                    using (ZipArchive archive = new ZipArchive(fs, ZipArchiveMode.Update))
                                    {
                                        ZipArchiveEntry readmeEntry = archive.CreateEntry(temp.Name);
                                        using (StreamWriter writer = new StreamWriter(readmeEntry.Open(), Encoding.UTF8))
                                        {
                                            writer.Write(temp.HtmlCode);
                                        }
                                    }
 
 
 
                                }
                            }
                        }
                        Thread.Sleep(Timeout.Infinite);
                    }
                    
                });
               }
 
        }
Делаю что то типо стека для архивирования. При инициализации класса создается цикличный поток который засыпает при исчерпании пула. Как можно запускать поток из функции внутри класса, то есть при добавлении новой записи в пул. Как обратится к именованному потоку?, или к переменной потока. Или может быть вообще все по другому сделать. Основная идея поток архивирующий один, а добавления в пул может быть много.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.02.2015, 13:32
Ответы с готовыми решениями:

Как передать параметр потоку?
Добрый день, возник вопрос как передать параметр потоку, нужно чтобы каждый запрос WebRequest request =...

Как передать файл по ssl потоку
Добрый день. Подскажите такой вопрос: как передать файл по ssl потоку в C#? Пишу так: byte file = Encoding.UTF8.GetBytes(Soob); ...

Как передать управление другому потоку?
Всем добрый день, есть такой вопрос, не знаю как решить. В чем суть, у меня есть основной поток, в котором создаю объект определенного...

4
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
08.02.2015, 13:57
Цитата Сообщение от PomaH Посмотреть сообщение
который засыпает при исчерпании пула
Зачем ему засыпать? Поставьте небольшую задержку внутри цикла Thread.Sleep(10); да и все. Грузить процессор это не будет.
0
 Аватар для PomaH
11 / 10 / 3
Регистрация: 01.08.2012
Сообщений: 136
08.02.2015, 14:00  [ТС]
Это похоже на костыль разве нет? уверен что есть другое решение.
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
08.02.2015, 15:14
Нет, это не костыль.
Цитата Сообщение от PomaH Посмотреть сообщение
уверен что есть другое решение.
Решений всегда много. Например другое решение - это асинхроные методы.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
08.02.2015, 15:17
PomaH, я бы делал таймер (у вас судя по всему периодическая проверка происходит, таймер для этого и предназначен) и для добавления юзал ThreadPool.QueueUserWorkItem
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.02.2015, 15:17
Помогаю со студенческими работами здесь

Как перейти к основному потоку из фонового
Есть некая программа со сплешем, в сплеше создается поток который выполняет работу и выводит статус того что он делает. Как можно вернуться...

Как из вторичного потока передать на выполнение другому вторичному потоку?
как как из вторичного потока передать на выполнение главному потоку я знаю. Вопрос: как из вторичного потока передать на выполнение другому...

Как указать потоку, чтобы он загружал файл из той папки, в который находится исходный файл?
Как указать потоку, чтобы он загружал файл из той папки, в который находиться исходный файл, т.е. из места нахождения файла? Если писать...

Обратиться к потоку по имени
Здравствуйте. У меня есть сервер на Java, он создает отдельные потоки, при каждом соединении. Мне нужно этим потокам как то дать имя...

Как определить принадлежность к именованному диапазону?
Подскажите, как мне программно узнать, принадлежит ли ActiveCell к именованому диапазону Range(&quot;фирмы&quot;). Т.е., если принадлежит,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru