![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Теория.Создание формы.Потоки (C#) |
|
.NET - Теория.Создание формы.Потоки (C#)
|
В Поисках Истины Сообщения: 802 |
Здравствуйте, Уважаемые!Помогите, пожалуйста, разобраться в теории и практике! Суть работы такова : Запускается программа, сворачивается, висит в трее!При запуске запускается несколько потоков, один из которых проверяет появление новых файлов(размеры могут колебаться от 1кб до нескольких гб).Количество файлов тоже неизвестно!Для наглядности копирования файлов, есть форма с отображением хода выполнения копирования.
Конструктор : list передается с указаниями путей откуда и куда копировать! В потоке формируется этот лист!И если нужно запустить копирование,т.е. нужно запустить форму и передать этот лист!При создании формы в потоке, как только она создастся поток продолжает свою работу, но нужно чтобы он ожидал, т.к. в потоке используется зацикливание, и по окончании одной итерации происходит "засыпание" потока, на определенное время, и в это время форма не блокируется! Была мысль передать через поля класса главного окна лист, но как вызвать из него событие запуска копирования? помогите разобраться, натолкните на мысль! Заранее Всех благодарю! |
|
Отправлено: 09:54, 01-03-2011 |
Старожил Сообщения: 154
|
Профиль | Отправить PM | Цитировать эм... я чето слабо понял что ты там накрутил но смотри. Поток это тоже самое что ты запускаешь паралельно вторую программу, которая просто тесно связаны. Когда же ты создаешь форму это создает ..эм.. скажем еще один поток специально под форму и она живет "своей" жизнью.
другое дело я немогу понять нах тебе потоки если у тебя будет 2-а окна которые итак работают параллельно. И вообще я не вижу в твоих словах распараллеливание процесса для чего и придуманы потоки. Как ты себе представляешь копирование списка, который заполняется "налету". А если в списке чтото появилось - почему нельзя копировать сразу по чьейнить команде ибо ты всеравно это делаешь в другой форме которая тока грузит процесс, но никак не встревает в циклы основной формы |
Отправлено: 18:12, 01-03-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать Цитата Beyound:
Потоки же создаются все из одно "главной" формы!А уже в них может понадобится вызов форм! Цитата Beyound:
Файлы копируются после создания списка! |
||
------- Отправлено: 22:19, 01-03-2011 | #3 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать LilLoco, приведи ка скриншот своей программы и окон, может, понятней станет, что к чему. Я по описанию тоже ничего не понял
![]() |
------- Отправлено: 00:59, 02-03-2011 | #4 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать Так, в данный момент почти все в теории, скринов особо то не нужно!
На данный момент есть : Главная форма(main), на форме есть только listBox для "логирования" ошибок и всякого другого(для слежения за работой). При запуске приложения форма сворачивается в трей и запускаются другие потоки, в одном из которых появляется список файлов для копирования. (рис1) Планируется сделать что то типа вот этого : (рис2) То есть в окне будет выполнятся какая то работа.Поэтому поиск файлов и копирование вынесено в отдельный поток(th1)(поток засыпает на некоторое время, и если это делать в "потоке" главной формы, она тоже "засыпает", что недопустимо). В потоке th1 идет поиск, заполняет List<string[]>.Далее нужно выполнить копирование файлов!Некоторые файлы, которые будут копироваться, могут использоваться в форме main, на мой взгляд, нужно на время копирования сделать неактивными эти вкладки! Но с другими вкладками можно продолжать работать!На время копирования нужно сделать что то визуально - отображающее процесс!Вот и надумал сделать форму с прогрессбарами. Но не надумал как вызвать форму из потока th1. P.S. Простите за "непонятные" объяснения. Не знаю как проще ( Можно ли вообще из другого потока, запустить форму так, что если засыпает поток, форма(запущенная из потока) продолжает "нормальную" работу? |
|
Отправлено: 08:44, 02-03-2011 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Win32 API - Создание "сквозной" формы средствами WinAPI | garkin123 | Программирование и базы данных | 7 | 14-11-2009 23:41 | |
C/C++ - C++Builder Потоки | alextrs | Программирование и базы данных | 1 | 01-04-2008 11:14 | |
Delphi - Delphi7, потоки | mahsus | Программирование и базы данных | 1 | 19-10-2004 16:46 | |
Создание формы в классе | Guest | Программирование и базы данных | 1 | 01-03-2004 15:53 | |
Потоки в VC++6.0 | Guest | Программирование и базы данных | 1 | 20-02-2004 05:06 |
|