Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2016, 11:51   #11
Lolidze
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 48
По умолчанию

да, спасибо. Тут щас форма виснет, как лучше сделать, чтоб форма не висла ? (у меня на уме ток в другой поток ее кинуть, но чет мне подсказывает, что это изврат), и еще, тут так же нужно использовать lock() чтобы конфликтов не было ?
Lolidze вне форума Ответить с цитированием
Старый 21.08.2016, 11:56   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а что вы лочить собрались?

для форм есть такая вещь как BackgroundWorker, в среднем куда удобнее чем поток.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.08.2016, 11:59   #13
Lolidze
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 48
По умолчанию

ну, общие переменные и вывод в форму.
а что насчет подвисания ? как быть ?

Последний раз редактировалось Lolidze; 21.08.2016 в 12:03.
Lolidze вне форума Ответить с цитированием
Старый 21.08.2016, 12:03   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

любое обращение к компонентам формы из не UI-потока должно быть обернуто в InvokeRequared/Invoke.

в целом таски более удобная альтернатива потокам.(особенно в данном случае)

по подвисанию, вторая строчка поста 12.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.08.2016, 12:07   #15
Lolidze
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 48
По умолчанию

хм, добавил backgroundWorker1 на форму, дабл клик по нему и внутри
Код:
 backgroundWorker1.RunWorkerAsync();
и все равно виснет (( Поле лога обновляется но форму двигать не могу и тп
Lolidze вне форума Ответить с цитированием
Старый 21.08.2016, 12:09   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

дабл клик должен был вывести вас в обработчик работы, а не в запуск, запуск или по кнопке или по иному событию.

в принципе если вы умеете потоки создавать, можете весь цикл туда перенести просто.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.08.2016, 12:13   #17
Lolidze
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 48
По умолчанию

вы имели в виду так :

Код:
Thread myThread = new Thread(start2);
                        myThread.Start();
...
public void start2(){

 var lines = File.ReadAllLines(path);
                var opt = new ParallelOptions
                {
                    MaxDegreeOfParallelism = 2//Лимит потоков
                };
                Parallel.ForEach(lines, opt, a => start(new string[] { a, MessageText }));


}
?
Lolidze вне форума Ответить с цитированием
Старый 21.08.2016, 12:15   #18
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

например, да.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.08.2016, 19:23   #19
Lolidze
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 48
По умолчанию

спасибо
Lolidze вне форума Ответить с цитированием
Старый 22.08.2016, 12:21   #20
Lolidze
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 48
По умолчанию

не подскажите, как будет выглядеть Parallel.ForEach , если к нему еще 1 поле добавить ? в виде прокси
Код:
  var lines = File.ReadAllLines(@"C:\1.txt");
             var proxy = File.ReadAllLines(@"C:\2.txt");
             var opt = new ParallelOptions
             {
                 MaxDegreeOfParallelism = 2
             };
             Parallel.ForEach(lines, opt, a => start(new string[] { a, "123" }));
Lolidze вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 14:23
[C#] Как "вытащить" значения из string? GregRUS Помощь студентам 2 12.01.2012 04:08
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
Как "вытащить" данные из 1С 7.07.1 Феска БД в Delphi 2 18.03.2009 23:39
Перечисление в столбце. Как "вытащить" нужное? Помогите! Tatyana БД в Delphi 2 10.07.2007 09:25