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

Одновременное выполнение действий без использования потоков/процессов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Объявление функции (непонятно) http://www.cyberforum.ru/cpp-beginners/thread679541.html
Не могу понять, чем отличаются объявления функции в 1 и 2 вариантах? Смысл писать в 1 ванианте отдельно прототип функции(первую строчку: long fibonachi (int)), а потом, после главной программы main дописывать использованную в ней функцию? Почему бы не сделать так, как написано в варианте 2? Или в этом есть разница? 1)#include<iostream> long fibonachi (int); int main() {
C++ Visual Studio 2010 и 2012. Проблемма после установки 12 Наверное уже кто-то сталкивался с этим и уже написал топик сюда или куда-либо-нибудь, но вот гугл и я убеждаемся в обратном (если я не прав извините пожалуйста!). Дело то вот в чём. Стояла тихо и мирно у меня на Windows 7 среда программирования Microsoft Visual Studio 2010, но вот узнав о новой версии 2012 я решил потревожить её покой установив её параллельно новую не удаляя старую.... http://www.cyberforum.ru/cpp-beginners/thread679535.html
C++ Вычислить значение выражения
написать программу чтобы она решала эти примеры! 1-й пример Картинка1 2-й пример картинка2 Добавлено через 7 минут http: //*************/s/2qsEx http: //*************/s/2qsG3 Добавлено через 39 секунд clip2net. com/s/2qsG3
Найти номер последнего отрицательного элемента массива C++
# include <iostream> using namespace std; void main () { int i=0; int p; setlocale(LC_ALL, "rus"); cout<<"Введите числа массива"<<endl; for (i=0;i<5;i++) cin>>p;
C++ Вывести символы, которые встречаются в исходном предложении по одному разу http://www.cyberforum.ru/cpp-beginners/thread679512.html
Помогите!)) Вывести символы, которые встречаются в исходном предложении по одному разу.
C++ Заменить 0 элементы массива на 1 и вывести массив в обратном порядке Двумерный динамический массив, через пользовательскую функцию. Массив типа float. Заменить 0 элементы массива на 1 и вывести массив в обратном порядке. Вот оригинал: 2D, float Substitute 0-items by 1 and output array in reverse order. подробнее

Показать сообщение отдельно
Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,248
Записей в блоге: 1
Завершенные тесты: 1
24.10.2012, 18:07     Одновременное выполнение действий без использования потоков/процессов
Если под Linux, то вот
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// взято здесь [url]http://www.cplusplus.com/forum/unices/25213/[/url]
#include <time.h>
#include <sys/time.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
/*
**   NOTE NOTE NOTE NOTE
**
**  you will need to link: (use LDFLAGS)
**
**  -lrt -lpthread
*/
 
#define SZ 46
long int overruns[SZ];
 
void callback(union sigval  arg) {
 
    timer_t * p =  (timer_t *) arg.sival_ptr;;
    int delay = timer_getoverrun(*p);
    printf("delay = %d\n", delay);
 
    // count overruns, which are timer intervals skipped
    if (delay<SZ) {
    overruns[delay]++;
    } else {
    timer_delete(*p);
    return ;
    }
 
    return;
}
 
timer_t timerid;
int main (int argc, char ** argv) {
 
    struct sigevent se;
    struct itimerspec ts;
    long int nsec;
    long int msec;
    long int sec;
 
    if(argc<2) {
    fputs("time milliseconds?\n",stderr);
    exit(1);
    }
    msec = atoi(argv[1]);
    fprintf(stderr, "got  %ld\n", msec);
    sec = (msec / 1000); 
    msec %= 1000;
    nsec = msec * 1e06;;
 
    se.sigev_notify = SIGEV_THREAD;
    se.sigev_value.sival_ptr = &timerid;
    se.sigev_notify_function = callback;
    se.sigev_notify_attributes = NULL;
 
    if ( -1 == timer_create(CLOCK_REALTIME, &se, &timerid)) {
    perror("timer_create:");
    return(1);
    }
 
    ts.it_value.tv_sec = sec;
    ts.it_value.tv_nsec = nsec;
    ts.it_interval.tv_sec = sec;
    ts.it_interval.tv_nsec = nsec ;
    printf("nanosex = %ld\n", ts.it_interval.tv_nsec);
    printf("seconds = %ld\n", ts.it_interval.tv_sec);
 
    if (-1 == timer_settime(timerid, 0, &ts, NULL)) {
    perror("timer_settime:");
    }
    getchar();   // press a key to stop
 
    int t;
    for(t=0; t<SZ; t++) {
 
    printf("overruns[%02d] = %ld\n", t, overruns[t]);
    }
 
 
    return 0;
}
Либо если есть возможность использовать Qt, то singleShot как раз подойдет.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru