Bir döngü içinde sürekli olarak çalışacak ve yalnızca önceki iş parçacığı kapalıysa bir iş parçacığı çalıştıracak bir program yazmaya çalışıyorum. İlk if ifadesinin dışında iş parçacığının durumunu kontrol edemiyorum çünkü ilk ifade ifadesinde status
bildirildi. İlk ifadenin içindeki durumu kontrol edersem tamamen kilitlenirim. İş parçacığının ana programa katılmadan bunu aşmak için nasıl bir şey uygulayabilirim?Kilitle iç döngüdeki işlem yürütme
int script_lock = 1; //lock is open
while (true) {
if (script_lock == 1) {
script_lock = 0; //lock is closed
auto future = async (script, execute); //runs concurrently with main program
auto status = future.wait_for(chrono::milliseconds(0));
}
if (status == future_status::ready) { //status not declared in scope
script_lock = 1; //lock is open
}
//do extra stuff
}
sadece while' '' sonra status' hakkını beyan edemez şu şekildedir:
Sen kodunu kolaylaştırabilirsiniz? – 4386427