Cześć
Piszę program i przyszedł mi do głowy pomysł, żeby zrobić coś takiego:
for(cośtam)
{
funkcja(cośtam); chyba, że upłynie czas (np.) 10 sek., wtedy continue;
}
czy da się coś takiego wykminić?
Dzięki z góry:)
Cześć
Piszę program i przyszedł mi do głowy pomysł, żeby zrobić coś takiego:
for(cośtam)
{
funkcja(cośtam); chyba, że upłynie czas (np.) 10 sek., wtedy continue;
}
czy da się coś takiego wykminić?
Dzięki z góry:)
continue
przejdzie do następnej iteracji pętli, nie chodziło Ci o break
?
Ten program miałby wyglądać tak?
for(coś)
{
if(minęło_10_sekund)
{
continue;
}
else
{
funkcja(coś);
}
}
time_t start,end;
start=clock();//predefined function in c
//after the user defined function does its work
end=clock();
t=(end-start)/CLOCKS_PER_SEC;
dzięki za odpowiedzi.
tak chodziło mi o continue, bo iterują się argumenty tej funkcji i dla niektórych argumentów ona działa szybko a dla niektórych bardzo wolno.
ten czasomierz ma działać w trakcie działania funkcji, i jeśli ten czas przekroczy jakąś wartość to ma przerwać funkcję i powtórzyć z innym argumentem
Problemem nie będzie przerywanie pętli a przerwanie działania funkcji jeżeli trwa ona zbyt długo. Problem jest taki że z funkcji main tego nie zrobisz. Na Linux'ie możesz to zrobić używając pthreads
tak jak tutaj
no tak, tego się obawiałem. przez chwilę łudziłem się że da się to zrobić jakoś prosto, zapuścić timer i na przykład w każdym rekurencyjnym zapętleniu tej funkcji sprawdzać czy nie osiągnął granicy, a jeśli tak to exit i ciach
Co do tego rozwiązania na wątkach i pthreads. Przeportuj sobie do wątków w C11. C11 wprowadziło do C wielowątkowość :) i możesz wtedy sobie tego używać na windows czy linuks.