|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.11.2014, 15:56 | #1 | |||
Регистрация: 23.11.2014
Сообщений: 4
|
Потокобезопасность
Добрый день!
В описании ко многим классам на msdn написано Цитата:
Код:
Цитата:
Цитата:
Получается метод WriteLine класса SerialPort потокобезопасный, если одновременно несколько потоков не могу ничего писать в компорт? Как тогда понимать фразу "Потокобезопасность членов экземпляров не гарантируется"? Такая же фраза присутствует и в описании свойства BaseStream объекста SerialPort. |
|||
23.11.2014, 17:36 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
А вообще нужно читать источник твоей цитаты.
I'm learning to live...
|
|
23.11.2014, 18:17 | #3 |
Регистрация: 23.11.2014
Сообщений: 4
|
Например, вот:
http://msdn.microsoft.com/ru-ru/libr...v=vs.110).aspx WriteLine() - это же тоже член экземпляра? То есть метод этот не потокобезопасный, а значит при его выполнении одновременно в нескольких потоках он может прерываться, но почему-то на практике такое не происходит |
23.11.2014, 22:20 | #4 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
это лишь значит что они могут быть. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
24.11.2014, 00:16 | #5 |
Регистрация: 23.11.2014
Сообщений: 4
|
Так в этом и вопрос - почему фейлов нет?
Например: Код:
Код:
Почему такого не происходит с методом WriteLine() объекта SerialPort? Он же должен быть потоконебезопасным. Сколько не создавал потоков, сбоев не было. |
24.11.2014, 01:10 | #6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
24.11.2014, 09:30 | #7 |
Регистрация: 23.11.2014
Сообщений: 4
|
Полагаю в описании на msdn было бы что-нибудь сказно в таком случае... Как тогда узнать какие методы потокобезопасны, а какие нет? В каких случаях нужно применять синхронизацию потоков, а в каких она уже встроена?
|
24.11.2014, 10:17 | #8 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Цитата:
У меня так в студенчестве по TCP одним куском данные кидались, я дополнительные проверки и докачивания не стал прописывать. В универе только посыпались косяки, когда сервер и комп на разные компы разнесли. |
|