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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2012, 15:38   #1
the27mart
Пользователь
 
Аватар для the27mart
 
Регистрация: 10.01.2012
Сообщений: 28
По умолчанию Доступ к компоненту WinForms из другого потока.

Ситуация такая:
Есть форма WinForms. На форме есть кнопка и прогресс-бар. При нажатии на кнопку, в другом потоке начинается запись в файл.
Внимание, вопрос:
Как из другого потока получить доступ к прогресс-бару?

P. S. На гугл не отправлять, только что оттуда:D
Just Google it!
the27mart вне форума Ответить с цитированием
Старый 22.06.2012, 16:16   #2
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

Invoke, пробовали в гугл вводить?))


писал уже на форуме этом где-то
Код:
this.InvokeEx(() => { button3.Text = DateTime.Now.ToString(); });
Код:
public static class ControlExtensions
    {
        public static TResult InvokeEx<TControl, TResult>(this TControl control, Func<TControl, TResult> func)
            where TControl : Control
        {

            try
            {
                return control.InvokeRequired ? (TResult)control.Invoke(func, control) : func(control);
            }
            catch
            {
                return default(TResult);
            }


        }

        public static void InvokeEx<TControl>(this TControl control,
                                              Action<TControl> func)
            where TControl : Control
        {
            control.InvokeEx(c => { func(c); return c; });
        }

        public static void InvokeEx<TControl>(this TControl control, Action action)
            where TControl : Control
        {
            control.InvokeEx(c => action());
        }
    }
А вообще посмотрите в сторону BackgroundWorker там должно быть все что вам нужно если я правильно понял)
во пример
http://www.codeproject.com/Tips/8331...ogressBar-demo

Последний раз редактировалось Reskov; 22.06.2012 в 16:20.
Reskov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доступ из другого потока Invoke delias C# (си шарп) 17 06.06.2013 22:33
Поток блокирует выполнение другого потока Levsha100 Общие вопросы Delphi 5 06.04.2012 08:05
[C#] Изменение текста label1 из другого потока/класса GregRUS Помощь студентам 3 11.01.2012 09:24
Быстрый вызов метода формы из другого потока Swarog Общие вопросы Delphi 3 21.05.2011 20:34
Доступ к функциям и структурам из потока MAIN_ELF Общие вопросы C/C++ 2 04.10.2010 15:08