|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.01.2011, 21:08 | #1 |
Новичок
Джуниор
Регистрация: 23.01.2011
Сообщений: 5
|
Работа с HANDLE из разных потоков
Я пишу приложение для работы с сом портом, у меня в приложении два потока, один главный, а второй сидит на WaitCommEvent и ждет поступления данных в порт. Как только данные приходят, второй поток дает команду первому вызвать ReadFile для считывания данных. Так вот проблема в том что второй поток посылает сигнал и потом снова ждет новых данных на вызове WaitCommEven, а первый поток читает данные, вернее начинает читать но вызов ReadFile навечно зависает, так как видимо оба потока используют один и тот же разделямый ресурс. У кого нибудь есть идеи, как это можно разрулить?
|
23.01.2011, 21:26 | #2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Скорее ReadFile() пытается прочесть больше данных, чем пришло.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
24.01.2011, 06:03 | #3 |
Форумчанин
Регистрация: 23.04.2009
Сообщений: 346
|
с чего бы это, интересно? Если бы данных не было, РидФайл вернула -1(или 0 не помню точно) и все тут.
Для ТС: кидайте бинарник программы, посмотрим, что это может быть ибо гадать можно очень долго
Нет, ну правда..
|
24.01.2011, 06:59 | #4 | |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
неа, не всё так просто
Цитата:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
|
24.01.2011, 09:57 | #5 |
Форумчанин
Регистрация: 23.04.2009
Сообщений: 346
|
Хммм ну да, с копипастой спорить глупо.
Однако на саму программу посмотреть таки тоже бы не помешало, глядишь чего-нибудь и придумалось.
Нет, ну правда..
|
24.01.2011, 10:06 | #6 |
Новичок
Джуниор
Регистрация: 23.01.2011
Сообщений: 5
|
параметры таймаутов заданы так чтобы ReadFile сразу возвращал управление
|
24.01.2011, 10:07 | #7 |
Новичок
Джуниор
Регистрация: 23.01.2011
Сообщений: 5
|
а бинарник то вам зачем?
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с файлом из нескольких потоков | boris-blade | Общие вопросы .NET | 2 | 02.04.2010 17:21 |
Передача параметров обьектам из разных потоков(работа с Thread) | B@ND!T | Общие вопросы .NET | 2 | 27.01.2010 23:37 |
Как узнать handle окна имея handle обного из его компонентов | SeRhy | Win Api | 2 | 18.10.2009 19:31 |
Как имея handle окна узнать handle edit-a который находится в етом окне | SeRhy | Общие вопросы Delphi | 1 | 20.07.2008 13:48 |