多线程如何传递参数并返回覆盖原来的值
请教各位高手:我已经能把textBox1->Text作为参数传给线程函数,只是不知道怎样才能让函数返回值,并覆盖原来textBox1->Text的值?达到的效果就是,随时...
请教各位高手:
我已经能把textBox1->Text作为参数传给线程函数,
只是不知道怎样才能让函数返回值,并覆盖原来textBox1->Text的值?
达到的效果就是,随时在void trythread( Object^ data )中修改textBox1->Text的值,
而不是线程结束后再返回.
public ref class Ctry {
public:
void trythread( Object^ data )
{
String ^s = (String ^)data;
while (1) {
//修改s的值
......
}
}
};
public ref class Form1 : public System::Windows::Forms::Form {
........
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
Ctry^ tr = gcnew Ctry;
Thread^ newthread = gcnew Thread( gcnew ParameterizedThreadStart( tr, &Ctry::trythread ));
Object^ text = (Object ^)textBox1->Text; //把textBox1->Text作为参数传给线程函数
newthread->Start(text);
......
如何随时得到修改后的参数.
}
......
};
如果返回值问题不能解决,那么能不能换个程序设计的思路来实现,而避免返回值问题?
我想达到的效果是在trythread中更改字符串,并且让它显示在文本框中. 展开
我已经能把textBox1->Text作为参数传给线程函数,
只是不知道怎样才能让函数返回值,并覆盖原来textBox1->Text的值?
达到的效果就是,随时在void trythread( Object^ data )中修改textBox1->Text的值,
而不是线程结束后再返回.
public ref class Ctry {
public:
void trythread( Object^ data )
{
String ^s = (String ^)data;
while (1) {
//修改s的值
......
}
}
};
public ref class Form1 : public System::Windows::Forms::Form {
........
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
Ctry^ tr = gcnew Ctry;
Thread^ newthread = gcnew Thread( gcnew ParameterizedThreadStart( tr, &Ctry::trythread ));
Object^ text = (Object ^)textBox1->Text; //把textBox1->Text作为参数传给线程函数
newthread->Start(text);
......
如何随时得到修改后的参数.
}
......
};
如果返回值问题不能解决,那么能不能换个程序设计的思路来实现,而避免返回值问题?
我想达到的效果是在trythread中更改字符串,并且让它显示在文本框中. 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询