سلام
من یه برنامهای دارم که توی اون از کتابخونهی chrono استفاده کردم. توی برنامه م 10تا آبجکت از یک کلاس دارم که هرکدوم از اونها مشخصه ای به اسم entryTime دارن.
همچنین دو تا thread دارم که هرکدوم یه تابع متفاوت رو صدا میزنن. در تابع اولی مقدار entryTime آبجکتها پر میشه و در دومی از اون استفاده میشه.
وقتی من بعد از اجرا شدن هر دو thread یک حلقه قرار میدم و میگم که مقدار entryTime همهی آبجکتها رو چاپ کن، همهی مقدارها مثل هم هستن!! درصورتیکه اگر در هر دو تابع یک cout بذارم، این مشکل برطرف میشه واقعا برام عجیبه که یک cout چیکار میکنه که این مشکل برطرف میشه. وااااقعا ممنون میشم اگر کسی راهنماییم کنه....
این نکته رو هم اضافه کنم که اگر به جای پر کردن entryTime با chrono، مثلا یه عدد integer قرار بدم، هیچ مشکلی وجود نداره.
نحوهی پر کردن entryTime:
std::chrono::high_resolution_clock::time_point tmpEntryTime = std::chrono::high_resolution_clock::now();
customerObj[selectedCustomer].entryTime = std::chrono::duration_cast<std::chrono::microseconds>(tmpEntryTime.time_since_epoch()).count();