| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Динамическое создание потоков TThread |
| Автор: ppc 1.7.2007, 17:57 |
| Добрый день, мастера! Подскажите, пожалуйста. Нужно создать 100 потоков класса TThread, причем на DoWork каждый поток должен выполнять одно и тоже действие. Конечно можно сделать руками, но сами понимаете..., наверное есть какой-то другой способ. Спасибо |
| Автор: skyboy 1.7.2007, 18:04 |
вот эта фраза наясна. что понимается под "сделать руками"? а то спрашивается про альтернативу, а альтернативу чему - неясно.... |
| Автор: ppc 1.7.2007, 18:12 | ||
Вот, нужно автоматизировать
|
| Автор: skyboy 1.7.2007, 18:44 | ||||
| тэк. номер раз: ты НЕ должен вызывать ни метод Execute, ни, тем более, собственноручно описанный doWork. Надо:
где создание объектов? ты объявил переменные(
а создавать объекты кто будет? и что, у тебя при такой работе не было Access Violation?! Не верю номер три: раз создал "собственный" метод, то почему не создал собственное поле, хранящее то, что у тебя от потока к потоку отличается - WebBrowser?!
Лучше всего при такой однообразности, хранить все потоки в динамическом массиве, но тут уж - хозяин-барин. Смотри сам. Добавлено через 58 секунд номер четыре: найди над формой быстрого ввода ответа(справа вверху) кнопку "Код". И обрамляй свой код спецтегами при помощи этой кнопки - и полезно, и приятно |
| Автор: ppc 1.7.2007, 22:58 | ||||
Вот полный код, чесно говоря я не понял, что ты сделал. Знаю, что нужно использовать цикл For, но не знаю как его тут применить. Точнее, мне нужно както это оптимизировать
чтоб можно было поставить в цикл и создавать неограниченное количество потоков |
| Автор: skyboy 1.7.2007, 23:45 |
что сам-то сделал - понял? ты объявил(собираешься объявить) 100 классов, единственный различный метод которых отличается исключительно данными, которые можно было спокойно вынести в поле объекта и использовать один класс с одним описанием для всех ста переменных-потоков, а не описывать сто TMyThread... которые отличаются только тем, с каким WEBBrowser'ом работают. Кроме того, совершенно неясно, как ты, вызывая метод DoWork напрямую у несозданного(по крайней мере, по коду не видно создания) объекта не получаешь Access violation. надо хороший учебник использовать. И внимательно читать. Что такое класс знаешь? А метод? А объект? |
| Автор: Romikgy 1.7.2007, 23:52 |
| У тя этот код компилится? или работает? (хотя и про компилится у мя увериности нет .... и зачем создавать 6 классов , если они делают одно и тоже? плюс по логике понял что это вызывается в основном потоке , тогда зачем вообще было потоки юзать ? skyboy, те пример привел , что еще мудрить то надо? |