Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Поиск файлов в отдельном потоке


Автор: Kolianiusus 16.5.2008, 00:15
Помогите пожалуйста реализовать поиск файлов и папок на диске С в отдельном потоке и вывод их количества в label.

Автор: _hunter 16.5.2008, 12:27
Не вопрос -- поможем. Спрашивай что непонятно.

Автор: Kolianiusus 16.5.2008, 17:39
Цитата(_hunter @ 16.5.2008,  12:27)
Не вопрос -- поможем. Спрашивай что непонятно.

Приведите код как это реализовать?

Автор: QryStaL 16.5.2008, 17:59
То есть полностью код написать? )))

Работа с файлами и директориями - System.IO
Работа с потоками - System.Threading.
Отображение - System.Windows.Forms

Смотришь там и потом спрашиваешь, что конкретно непонятно. А если непонятно все, то лучше заняться изучением .NET Framework.

Автор: jonie 17.5.2008, 10:10
для облегчения работы с потоками можно использовать BackgroundWorker...

Автор: Kolianiusus 20.5.2008, 01:38
Поясните пожалуйста этот кусок кода.

Код

private void moveTimer_Tick(object sender, System.EventArgs e)
        {
            if (previewMode)
            {
                PointF p = new PointF(1.0f, 1.0f);
                Graphics g = Graphics.FromHwnd(parentHwnd); 
                g.Clear(this.BackColor);
                DisplayText(g, p, new Font("Arial", 10));
                g.Dispose();
            }
            else
                this.Invalidate();

            label1.ForeColor = Color.White;
            label1.Text = potok.ThreadState.ToString() + " searching in " + Path;
        }


Что такое Graphics и если можно то подробно каждую строчку.

Автор: _hunter 20.5.2008, 11:08
Что такое Graphics легко можно узнать из MSDN'а.
Каждую строчку коментить... Ты, лучше, книгу какую-нить по шарпу почитай -- ничего "сверхъестественного" в этом коде нет... (Ну или у автора объяснений требуй)

Автор: Kolianiusus 20.5.2008, 18:41
Цитата(_hunter @ 20.5.2008,  11:08)
Что такое Graphics легко можно узнать из MSDN'а.
Каждую строчку коментить... Ты, лучше, книгу какую-нить по шарпу почитай -- ничего "сверхъестественного" в этом коде нет... (Ну или у автора объяснений требуй)

Объясни пожалуйста если не трудно.

Автор: _hunter 21.5.2008, 11:05
Ну, поехали...
Цитата

The Graphics class provides methods for drawing lines, curves, figures, images, and text. A Graphics object stores attributes of the display device and attributes of the items to be drawn.

Коменты:
Объявляем приватную функцию moveTimer_Tick возвращающую void и принимающую object , System.EventArgs
private void moveTimer_Tick(object sender, System.EventArgs e)
начало теал функции
{
если previewMode
if (previewMode)
начало блока if
{
создаем новый объект типа PointF, передавая в качестве параметров 1.0f, 1.0f
PointF p = new PointF(1.0f, 1.0f);
создаем новый объеат типа Graphics, передавая в качестве параметров parentHwnd
Graphics g = Graphics.FromHwnd(parentHwnd); 
очищаем g BackColor'ом
g.Clear(this.BackColor);
показываем текст
DisplayText(g, p, new Font("Arial", 10));
диспозим g
g.Dispose();
конец блока if
}
else
else
Invalidate'им this
this.Invalidate();
присваиваем свойству ForeColor объекта label1 Color.White
label1.ForeColor = Color.White;
присваиваем свойству Text объекта label1 potok.ThreadState.ToString() + " searching in " + Path;
label1.Text = potok.ThreadState.ToString() + " searching in " + Path;
конец тела функции
}

Автор: Kolianiusus 21.5.2008, 21:42
Спасибо!  smile

Добавлено через 10 минут и 49 секунд
Интересует еще одно: parentHwnd
Что такое Hwnd ?

Автор: jonie 22.5.2008, 00:18
это польская нотация... типа сокращения от HandleWindow... не парься)

Автор: Kolianiusus 25.5.2008, 12:57
Не открывается проект на Microsoft Visual Studio 2005. В чем дело?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)