przerywanie pętli po upływie czasu

0

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:)

0

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ś);
	}
}
1
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;
0

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

1

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

0

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

1

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1