powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Подскажите с синхронизацией потоков.
8 сообщений из 8, страница 1 из 1
Подскажите с синхронизацией потоков.
    #38123181
Dragon rideR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть экземпляр класса в котором объявлена куча разных таймеров. Этот экземпляр 24 раза в секунду обрабатывается потоком в котором любой из таймеров может быть удален. И случается что таймер удаляется посреди выполнения. И следующий код выдает эксепшен на строке UsersListTimer.Enabled = false; что UsersListTimer==null
Код: c#
1.
2.
3.
4.
5.
6.
7.
private void OnUsersListTimerEvent(object sender, ElapsedEventArgs e){
            lock(UsersListTimer)
                {
                    UsersListTimer.Stop();
                    UsersListTimer.Enabled = false;
                }
            }


Никак не могу понять какой механизм синхронизации потоков использовать чтобы избежать ошибок?
...
Рейтинг: 0 / 0
Подскажите с синхронизацией потоков.
    #38123239
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dragon rideRНикак не могу понять какой механизм синхронизации потоков использовать
чтобы избежать ошибок?
Работай с таймерами только в главном потоке, который крутит цикл обработки сообщений.
Остальные потоки пусть посылают главному сообщения с просьбой таймер удалить.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подскажите с синхронизацией потоков.
    #38123285
Dragon rideR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как я понял таймер вызывается в том потоке в котором его создали?
...
Рейтинг: 0 / 0
Подскажите с синхронизацией потоков.
    #38123301
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dragon rideRКак я понял таймер вызывается в том потоке в котором его создали?
Так мы-то откуда знаем, как там у вас в C# все работает?
У нас в С++ вообще нет никаких таймеров
...
Рейтинг: 0 / 0
Подскажите с синхронизацией потоков.
    #38123380
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dragon rideRКак я понял таймер вызывается в том потоке в котором его создали?

Из чего ты это высосал?
Posted via ActualForum NNTP Server 1.5

Модератор: Тема перенесена из форума "C++".
...
Рейтинг: 0 / 0
Подскажите с синхронизацией потоков.
    #38123401
Dragon rideR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
предположение
...
Рейтинг: 0 / 0
Подскажите с синхронизацией потоков.
    #38123414
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dragon rideRЕсть экземпляр класса в котором объявлена куча разных таймеров. Этот экземпляр 24 раза в секунду обрабатывается потоком в котором любой из таймеров может быть удален. И случается что таймер удаляется посреди выполнения. И следующий код выдает эксепшен на строке UsersListTimer.Enabled = false; что UsersListTimer==null
Код: c#
1.
2.
3.
4.
5.
6.
7.
private void OnUsersListTimerEvent(object sender, ElapsedEventArgs e){
            lock(UsersListTimer)
                {
                    UsersListTimer.Stop();
                    UsersListTimer.Enabled = false;
                }
            }


Никак не могу понять какой механизм синхронизации потоков использовать чтобы избежать ошибок?
Код: c#
1.
2.
3.
4.
if (UsersListTimer != null)
                    {
                        .....
                    }
...
Рейтинг: 0 / 0
Подскажите с синхронизацией потоков.
    #38125931
JohnSparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
var timer = UsersListTimer;
if (timer != null)
{
    .....
}
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Подскажите с синхронизацией потоков.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]