【发布时间】:2011-05-18 16:51:12
【问题描述】:
struct ArgumentList {
int x;
string text1;
};
/////////////////////////////////////////
ArgumentList arg1={12,"text123"}
WorkerThread->RunWorkerAsync(arg1);
我想传递 arg1 但编译器说“错误 C2664: 'void System::ComponentModel::BackgroundWorker::RunWorkerAsync(System::Object ^)' : cannot convert parameter 1 from 'ArgumentList' to 'System::对象^'"
System::Void backgroundWorker2_DoWork(System::Object^ sender, System::ComponentModel::DoWorkEventArgs^ e) {
//Do stuff with e->Argument
ArgumentList passedarg=(ArgumentList)e->argument; //'type cast' : cannot convert from 'System::Object ^' to 'ArgumentList'
int y=passedarg.x
string text2=passedarg.text1
//...
}
【问题讨论】:
-
那是
std::string吗?为了让BackgroundWorker能更好地发挥作用,您需要跳过一些障碍,请考虑改用System::String^。
标签: c++-cli arguments backgroundworker