Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение с Com-porta и Form в одном потоке, ребята, помогите плиз!!! 
:(
    Опции темы
stashe
Дата 24.1.2007, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 5.1.2007
Где: Донецк

Репутация: 1
Всего: 1



Есть чтение с порта, необходимо его влепить в один поток с формой, чтобы не было потери данных. Я с шарпом (и вообще с программированием) недавно, так что буду рад всем предложениям. 
З.Ы. Заранее очень благодарен
PM   Вверх
ivashkanet
Дата 24.1.2007, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



stashe, я, конечно, далек от компортов, но, ИМХО, нужно ждать данных постоянно. 
Поэтому второй поток --- самый лучший вариант.

Можно, конечно, написать что-то типа:
Код

while (true)
{
 data = getData();

 // позволяет приложению обработать все пришедшие к нему запросы,
 // типа кликов мышки и др.
 Application.DoEvents();
}


Но эта форма будет жрать 100% процессорного времени. Тебе оно надо?


Разбирись лучше с потоками.
Или с компонентом BackgroundWorker

PM MAIL WWW ICQ   Вверх
stashe
Дата 24.1.2007, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 5.1.2007
Где: Донецк

Репутация: 1
Всего: 1



да ком порт тут просто прицепом, надо это в один поток влепить, микрософты описывают, что есть такие бока (потеря даннных)

Добавлено @ 13:04 
Чтение порта есть, всё есть, работает, но данные теряются...НАДО В ОДИН ПОТОК, а как  smile  незнаю
PM   Вверх
ivashkanet
Дата 24.1.2007, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(stashe @  24.1.2007,  12:02 Найти цитируемый пост)
но данные теряются...НАДО В ОДИН ПОТОК

Какая разница с одним или двумя потоками  smile 
Не может такого быть, ИМХО.
Цитата(stashe @  24.1.2007,  12:02 Найти цитируемый пост)
микрософты описывают, что есть такие бока

А можно ссылочку на это?
PM MAIL WWW ICQ   Вверх
stashe
Дата 24.1.2007, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 5.1.2007
Где: Донецк

Репутация: 1
Всего: 1



The reason for this is that WinForms controls' properties must be modified on the same thread that they were created on. By using this.Invoke (where "this" is the form the control is on), it asks the form to run another method on the same thread the form is on. serialPort_DataReceived could be triggered at anytime (not just when the form is avalible) since the SerialPort control runs outside of the form's thread. This is a big advantage in that it will always be responsive to incoming serial data even if the form is busy with an intensive redraw or update.

PM   Вверх
ivashkanet
Дата 24.1.2007, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Ну smile Тут и говориться, что лучше пускать два потока, а не один smile
Один слушает порт, а второй отвечает за форму smile
Цитата(stashe @  24.1.2007,  13:51 Найти цитируемый пост)
 since the SerialPort control runs outside of the form's thread.

И говорят, что это хорошо:
Цитата(stashe @  24.1.2007,  13:51 Найти цитируемый пост)
 This is a big advantage in that it will always be responsive to incoming serial data even if the form is busy with an intensive redraw or update.


Где ты нашел про потерю данных  smile smile 

Это сообщение отредактировал(а) ivashkanet - 24.1.2007, 15:31
PM MAIL WWW ICQ   Вверх
stashe
Дата 24.1.2007, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 5.1.2007
Где: Донецк

Репутация: 1
Всего: 1



ТУПЛЮ!!!!!!!!! мой аглийцкий хромает
З.Ы. сори за аватары
PM   Вверх
ivashkanet
Дата 24.1.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



stashe, тебе ясно как обратиться к форме из другого потока?
PM MAIL WWW ICQ   Вверх
stashe
Дата 24.1.2007, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 5.1.2007
Где: Донецк

Репутация: 1
Всего: 1



Нет, но разберусь, чай, не пальцем делан (надеюсь) )))

Добавлено @ 17:24 
Спасибо всем кто принял участие!!!!
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0857 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.