Ich habe eine Bibliothek, die einen Vektor von Zeichenfolgen als Argument akzeptiert & schiebt es auf einen Vektor des Vektors der Zeichenfolgen (2D-Vektor). Ich habe eine Bedingung, dass "von der ersten Zeile an den 2D-Vektor geschoben wird, sollte der Timer & für jede" X "-te Millisekunde starten Ich möchte eine spezielle Zeichenfolge" FLAG_BORDER "am Ende des Vektors der Zeichenfolge anhängen dass ich als Argument zur Bibliothek erhalten.Verfolgen Sie den Timer wiederholt in C++
BIBLIOTHEK CODE
using namespace std;
vector<vector<sring>> vecOfVecStrs;
MyLibraryFunction(vector<string> vecstr)
{
if(TimerLimitNOTHit()) // THIS FUNCTION TimerLimitNOTHit() checks if the "X"
// th milisecond is reached or not.
{
vecOfVecStrs.push_back(vecstr); // If "X"th ms time poeriod is NOT
// yet reached
}
else
{
vecstr.push_back("FLAG_BORDER");
vecOfVecStrs.push_back(vecstr);
}
ANWENDUNG Coderuf Library-Funktion ::
int main()
{
do_something();
vector<string> vecStr;
while(vecStr = Get_VecTor_of_strings())
{
MyLibraryFunction(vecStr);
}
Wie implementiere ich die Funktion TimerLimitNOTHit() hier welche sollte verfolgen den Timer "X" milisec über Funktionsaufrufe zu "MyLibraryFunction()" in C++?
BEARBEITET: SEIFE WIE GEFUNDEN EINE ANTWORT. wird es funktionieren ?
int timeX = 30; //s
bool keepTrack = false;
int ci = 0;
std::vector<int> timeArray;
std::mutex m;
bool keepTracking()
{
std::unique_lock<std::mutex> lock(m);
return keepTrack;
}
void GlobalTimer()
{
while (keepTracking())
{
std::this_thread::sleep_for(std::chrono::seconds(timeX));
timeArray[ci] = 1;
}
}
std::thread t1(GlobalTimer);
Bitte den Code einrücken. –