|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.08.2014, 23:17 | #1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Синхронный сокет тормозит программу.
Доброго времени суток!
Есть никий сокет, при запросе на который подвисает все приложение. Есть ли способ избавиться от этого эффекта? При том, что запросы могут быть неограниченной вложенности, т.е. если запрос 1 прошел, шлем запрос 2, и так до неопределенной длинны цепочки. Идею потока я тут запихать не могу.... |
08.08.2014, 08:04 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
08.08.2014, 10:20 | #3 | ||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
Тут у меня все на функциях построено... Если ЧтоТоОтправили то.. дейстаие 1 и отправка2 и так много-много раз. Пока придумал на основе CallBack-ов. т.е. есть функция SendRequst создает локально поток(внутри функции), функция получает указатель на callBack-метод для получения ответа от сокета. Это показалось мне самой правильной идеей... Поток саморазрушается по получению ответа. Цитата:
|
||
08.08.2014, 12:13 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Или я не так понял?
I'm learning to live...
|
|
08.08.2014, 12:16 | #5 | |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Цитата:
Благодарить в репутацию. Проклинать — туда же
|
|
08.08.2014, 12:23 | #6 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
|
|
08.08.2014, 12:52 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Попробуй тестовую функу так запилить и посмотришь оно аль гоуно
I'm learning to live...
|
|
08.08.2014, 13:01 | #8 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
Что если исходить из того, что пользовтель будет работать только с 1 оборудованием одновременно, и сделать по принципу SVN: получение рабочей копии с устройства, во время этого бюзер не может работать с программой. Юзер вносит изменения. Юзер делает commit изменений рабочей копии, назад на устройство, ПО блокируется на этот момент. Т.е. выкидывыем идею доп. потока, работа в реальном времени исключается. На сколько это решение будет более верным? Последний раз редактировалось Человек_Борща; 08.08.2014 в 13:03. |
|
08.08.2014, 13:22 | #9 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Сама функа установки калбэка ниче не должна возвращать. Цитата:
I'm learning to live...
|
||
08.08.2014, 13:25 | #10 | |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Цитата:
Как вариант: StartRequest -> два callback'a: для получения результата и для получения ошибки, если что-то пошло не так. На время выполнения запроса висит окошко "Идет загрузка", и бегают синие таблетки)
Благодарить в репутацию. Проклинать — туда же
Последний раз редактировалось Luuzuk; 08.08.2014 в 13:27. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Синхронный вывод в textBox | BrookBond | C# (си шарп) | 6 | 21.11.2013 14:48 |
TCPListener синхронный (прием и отправка данных) | Johnlion | C# (си шарп) | 1 | 20.01.2013 17:43 |
Сокет останавливает другой сокет. | batand | C/C++ Сетевое программирование | 2 | 09.10.2012 11:58 |
Вопрос по WinSock: "сокет=сокет." | Ksardas13 | C/C++ Сетевое программирование | 2 | 27.11.2011 16:12 |
Синхронный просмотр | SeaMan | БД в Delphi | 3 | 09.10.2008 03:16 |