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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2012, 23:20   #1
MyXa
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 77
По умолчанию Получить доступ

есть класс - class1
в нем создается экземпляр другого класса class2 и его метод gg запускается в отдельном потоке

в class1 есть метод, который изменяется(переменная)
нужно получить в gg эту переменную. как это сделать?

ведь переменная меняется. если циклом передавать эту новую переменную второму классу - ресурсоемко(хотя можно передавать только при ее изменении )..
I have cheats!!!!
MyXa вне форума Ответить с цитированием
Старый 02.10.2012, 00:26   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

нужно получить в gg эту переменную. как это сделать?

через event.
Вариация паттерна Observer
Rififi вне форума Ответить с цитированием
Старый 02.10.2012, 14:35   #3
MyXa
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 77
По умолчанию

понял что нужно копать в сторону делегатов и событий....мутно все)

вообщем есть класс(class1), который порождает экземпляры(массив) клиентов и запускает определенный метод(слушает клиента) этого клиента. (в отдельных потоках)
В class1 есть переменная, отвечающая за кол-во клиентов... по мере создания экземпляров клиентов цифра увеличивается.

Слежение за отключением клиента происходит в его экземпляре. Нужно из этого экземпляра клиента изменить кол-во клиентов(в class1) на минус 1
I have cheats!!!!
MyXa вне форума Ответить с цитированием
Старый 03.10.2012, 02:43   #4
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Код:
this.Invoke(new MethodInvoker(() => { TextBox.Text = "msg"; }));
coNsept вне форума Ответить с цитированием
Старый 03.10.2012, 08:10   #5
MyXa
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 77
По умолчанию

что-то нету у this таких методов....
сделал так(в class1, чтобы с небольшой задержкой и в отдельном потоке(что форма не висла) проверялся метод exit . если да то уменьшаем кол-во клиентов --.

Код:
public void check_count(){
            while (true)
            {
                Thread.Sleep(10);
                for (int i = 0; i <= _countClient - 1; i++)
                {
                    Thread.Sleep(20);
                    if (g[i] == null) { continue; }
                    if (g[i].exit == 1) {  clients[i].Close(); th_ch[i].Abort(); th[i].Abort(); g[i] = null; _countClient--; }
                }
            }
        }
вроде как нужно работает
I have cheats!!!!
MyXa вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу получить доступ к файлам Orsini Общие вопросы C/C++ 0 13.06.2012 12:09
Win7 Получить доступ к каталогу kzld Операционные системы общие вопросы 2 08.01.2012 18:54
Получить доступ в приват prikolist Общие вопросы C/C++ 1 19.05.2010 23:58
Получить доступ к MDIChild форме. Oleg Romanchuk Помощь студентам 4 11.05.2009 12:43
Получить доступ к файлу yngwie Win Api 1 08.04.2009 14:11