我正在尝试使用一个通过引用获取对象的函数(string&)来生成一个线程并修改它。主线程等待该线程返回。线程返回主线程后,对修改后的对象应用一些操作。
测试代码如下: -
/*It modifies the data and returns processed information by filtering the information*/
void process_data(string& data);
int main(){
/*it will get the parsed information from the source*/
string parsed_data = get_parsed_data(source_id/*some source*/);
thread pre_process_thread(process_data, parsed_data);
pre_process_thread.join();
populate_obj(parsed_data);
return 0;
}
现在,我的问题是虽然parsed_data作为对process_data()的引用传递,并且进程数据函数正在按预期修改该数据,但是在pre_process_thread完成之后,某种方式是parsed_data显示原始数据。 理想情况下,当我通过引用传递时,它应该显示修改后的值。