![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| 1cko |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 18.2.2010 Репутация: нет Всего: нет |
Все доброго времени суток. Есть простой вопрос касающийся многопоточности. Пишу прогу на шарпе, но ни разу с потоками неработал. вопрос следующий...
Есть собственный класс, у которого есть открытое свойство (public). В основном потоке приложения создаю экземпляр этого класса и по некторым событиям читаю (только читаю!) это свойство. Параллельно с основным потоком работает второй поток, который изменяет данное свойство. Вопрос: правильно ли я понимаю, что при реализации такого взаимодействия не нужно заботиться о "локах" и т.п.? Ведь нет конкуренции на запись! Заранее спасибо. |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 17 Всего: 306 |
||||
|
||||
| 1cko |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 18.2.2010 Репутация: нет Всего: нет |
т.е. если у меня всего 2 потока, один читает второй пишет, то их нужно обязательно синхронизировать? Уточнение: что произойдет раньше: чтение или запись - для алгоритма значения не имеет |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 17 Всего: 306 |
||||
|
||||
| 1cko |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 18.2.2010 Репутация: нет Всего: нет |
для чего?
|
|||
|
||||
| PashaPash |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 9 Всего: 49 |
1cko, какой тип у свойства? Как реализованы геттеры и сеттеры? Есть ли значение по умолчанию?
|
|||
|
||||
| 1cko |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 18.2.2010 Репутация: нет Всего: нет |
проясните плз ситуацию.
Добавлено @ 12:18
тип - double, тип видимости - public (если вы об этом). По умолчанию будет 0 Это сообщение отредактировал(а) 1cko - 31.3.2010, 12:18 |
|||
|
||||
| PashaPash |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 9 Всего: 49 |
1cko, чтение и запись double, насколько я помню, - неатомарная операция. т.е. один поток может записать "половину" значения, и в этот момент его прочитает второй поток. сделай синхронизацию вроде
|
|||
|
||||
| 1cko |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 18.2.2010 Репутация: нет Всего: нет |
Огромное спасибо! Реально такого примера очень не хватало! |
||||
|
|||||
| HalkaR |
|
|||
![]() Пуфыстый назгул ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2132 Регистрация: 8.12.2002 Где: В Москве Репутация: 5 Всего: 42 |
1cko, на самом деле lock для такого примера не нужен. Достаточно пометить поле как volatile.
|
|||
|
||||
| PashaPash |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 9 Всего: 49 |
||||
|
||||
| HalkaR |
|
|||
![]() Пуфыстый назгул ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2132 Регистрация: 8.12.2002 Где: В Москве Репутация: 5 Всего: 42 |
||||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |