Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
.NET 3.x

Как улучшить код?

18.09.2016, 20:10. Показов 1068. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В Main() код для вызова функции
У меня есть много классов которые должны работать через Thread
например:
C#
1
2
3
4
5
6
7
8
9
10
Thread s = new Thread(class.Go);
s.Start();
Thread s = new Thread(class2.Go);
s.Start();
Thread s = new Thread(class3.Go);
s.Start();
Thread s = new Thread(class4.Go);
s.Start();
Thread s = new Thread(class5.Go);
s.Start();
Чтобы не писать так много для каждого класса, как можно это сделать лучше?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.09.2016, 20:10
Ответы с готовыми решениями:

Как улучшить код?
Как улучшить? static double Power(double x, int y) { double b = x; double c; ...

Системная информация - как улучшить код?
Проблема в том что выходит слишком много foreach, как всё это можно сократить? string savePath = @"C:\Sys.txt"; ...

Адресная книга в консоли - как улучшить приложенный код
Вот задание: Во всех вариантах предусматривается вначале создание какого-то алгоритма обработки заданной сущности (например, разбор...

7
 Аватар для bodynar
345 / 307 / 135
Регистрация: 14.03.2015
Сообщений: 1,158
Записей в блоге: 1
18.09.2016, 20:34
Закиньте ваши "классы" в массив\коллекцию и в цикле в 2 строчки (или одну) запускайте ваши треды.

Либо же точнее укажите что за class1.Go, class2.Go

Добавлено через 5 минут
Коленко-код
Что-то вроде
C#
1
2
3
4
5
6
7
var dels = new MyDelegate[5];
string[] names = new string[5] {"Huan", "John", "Stewie", "James", "Antonie"};      
            for (int i = 0; i <5; i++)
            {
                dels[i] =  new MyDelegate(x => Console.WriteLine(x));
                dels[i].Invoke(names[i]);
            }


Не по теме:

5 минут прошло, не успель

1
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
18.09.2016, 22:56  [ТС]
bodynar Я правильно понял, в массив
C#
1
string[] names = new string[5] {"Huan", "John", "Stewie", "James", "Antonie"};
занести свои классы? типо:
C#
1
string[] names = new string[5] {class1.Go, class2.Go, class3.Go, class4.Go, class5.Go};
А запускать просто
C#
1
dels[i].Invoke(names[i]);
Добавлено через 1 час 35 минут
Можно поподробнее?? Я чёт не втыкаю) и желательно без использования Linq!
0
 Аватар для bodynar
345 / 307 / 135
Регистрация: 14.03.2015
Сообщений: 1,158
Записей в блоге: 1
18.09.2016, 23:36
Товарищ chaleureux, а вы с делегатами работали ранее?

В таком случае ваш вопрос про занесение "классов" отпадет.

Цитата Сообщение от chaleureux Посмотреть сообщение
желательно без использования Linq!
А чем вам линка не угодила?
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
19.09.2016, 00:05  [ТС]
Цитата Сообщение от bodynar Посмотреть сообщение
а вы с делегатами работали ранее?
Я изучаю!
Цитата Сообщение от bodynar Посмотреть сообщение
А чем вам линка не угодила?
Ну просто в 3.0 нельзя использовать Linq! А люди не видят этого(заголовок темы) и пишут под него!
Я же прошу помочь как улучшить код?!
0
 Аватар для iDReeM
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
19.09.2016, 01:27
class, class1, class2..... => class[]
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
19.09.2016, 10:10  [ТС]
iDReeM Я вот как ещё попробовал,
C#
1
2
3
4
5
6
7
8
9
10
Thread[] threads = new Thread[]
{
   new Thread(class1.Go),
   new Thread(class2.Go),
   new Thread(class3.Go),
   new Thread(class4.Go),
   new Thread(class5.Go)  
}; 
foreach(var thr in threads)
   thr.Start();
0
 Аватар для bodynar
345 / 307 / 135
Регистрация: 14.03.2015
Сообщений: 1,158
Записей в блоге: 1
19.09.2016, 11:42
chaleureux,
Цитата Сообщение от chaleureux Посмотреть сообщение
C#
1
2
3
4
5
(class1.Go),
(class2.Go),
(class3.Go),
(class4.Go),
(class5.Go)
У вас так и это статические классы? Это ваша конкретика?
Что за классы, приведите описание.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.09.2016, 11:42
Помогаю со студенческими работами здесь

Улучшить код разбора аргументов
Разрабатываю программу, и не хочу использовать костыли и говнокод, но делая одну функцию я встал в тупик: public static string ParseArgs...

Улучшить код с кучей ветвлений
Доброго времени суток, форумчане! Есть вариант написания подобной логики без огромного колличества Ifов и без мега switchей? if (Stime...

Найти элемент в массиве которого больше 50%. Улучшить код
Новый русский Колян любит две вещи: деньги и порядок. У Коляна много денег, но в них нет порядка. Одним прекрасным утром Колян понял, что...

Как улучшить код
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,...

Как улучшить код?
Я нубяра в ООП вот написал чтото хочу услышать мнение профи как улучшить код. &lt;?php abstract class DB { protected static...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь 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. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru