Форум программистов, компьютерный форум CyberForum.ru

Как организовать Messenger реального времени? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Проверка на скобки в строчном калькуляторе http://www.cyberforum.ru/cpp-beginners/thread1237549.html
Добрый день ! Нужна помощь, я в своём калькуляторе прописал многие проверки на ввод, но не могу справиться с таким примером: если человек введёт ) 3 + 5 (, то мой калькулято выдаёт 0, а нужно, чтобы выдывал сообщение об ошибке. Подскажите, как правильно прописать данную проверку ? double Calculate::Execute(const char* expression) { int length = strlen(expression); if (!length) {
C++ Ввод/вывод, метод класса Добрый день, только начал изучать c++ и сразу много всяких непонятных ошибок, в c# куда проще было =( #include <iostream> #include <string> #include <windows.h> #include <conio.h> #include "algorithm" using namespace std; int main() http://www.cyberforum.ru/cpp-beginners/thread1237512.html
Удалить все пробелы в строке C++
можно ли как то с помощью метода string.replace удалить все пробелы в строке? вот так не работает :( string str("this is test string"); str.replace(" ", "");
C++ Возвращение ссылки на локальную переменную
Заметил недавно одну интересную вещь. Как вообще работает такой код? Причем коректно. int& func(); int main() { cout << func(); } int& func() { int a = 99;
C++ Что делать если нужно знести информацию в 2 разных объекта базового класса при закрытом наследование http://www.cyberforum.ru/cpp-beginners/thread1237496.html
Что делать если нужно знести информацию в 2 разных объекта базового класса при закрытом наследование? Например мне нужно держать скажем имя и проффесию в разных обьектах string.
C++ Разделить строку типа string на лексемы Есть строка string, нужно разбить её на лексемы. У меня не получается использовать strtok с типом string. подробнее

Показать сообщение отдельно
НеСказочник
58 / 46 / 7
Регистрация: 12.11.2012
Сообщений: 339
Записей в блоге: 2
02.08.2014, 15:24     Как организовать Messenger реального времени?
Слип останавливает поток на время, а таймеры с калбеком нет. После слипа программа продолжит выполнение с того же места. А по прерыванию таймера вызовется функция, адрес которой Вы, скорее всего, передали таймеру во время настройки.
Смена контекста потока занимает не так уж и много времени, но если потоков уж очень много наплодить (не забывайте, что Ваш процесс в системе не единственный) то не сложно добиться ситуации в которой время на переключение больше времени выполнения полезных действий.
И ещё пара ситуаций из моей практики, когда я хотел убить человека за слипы в коде:

1) пару раз встречал программы, которые капитально вешались при открытии файла, к которому нет доступа. Вместо того, что бы завести таймер и раз в 10 секунд проверять доступность файла, некоторые программисты ставят sleep(10000), что капитально вешает программу до тех пор, пока она не получит таки свой файл. в то же время, если сделать это с помощью таймеров, то пока таймер считает, события пользовательского интерфейса нормально отрабатываются.

2) Как то раз видел самодельный сервер БД, которые запускал sleep(100) когда ему было нечего делать. Соответственно повесить такую БД простейшей DDos атакой было проще простого.

3) есть ещё куча историй, но мне надо уезжать, так что в следующий раз расскажу.
 
Текущее время: 11:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru