我在Visual Studio 2015中创建了一个UI。从UI创建的头文件中,我创建了几个线程。在这个线程中,我在类中调用外部方法。然后,从这个方法我想打印结果将它们添加到UI中的列表框。
但是,它不起作用。我尝试使用Delegate
,但它也没有用。
在gui.h中创建线程:
FaceCheck^ f1 = gcnew FaceCheck("hello");
System::Threading::Thread^ t1 = gcnew System::Threading::Thread(gcnew System::Threading::ThreadStart(f1, &FaceCheck::WriteText));
t1->Start();
FaceCheck^ f2 = gcnew FaceCheck("goodnight");
System::Threading::Thread^ t2 = gcnew System::Threading::Thread(gcnew System::Threading::ThreadStart(f2, &FaceCheck::WriteText));
t2->Start();
FaceCheck类(.cpp):
#include "FaceCheck.h"
#include "gui.h"
FaceCheck::FaceCheck(System::String^ text_out)
{
text = text_out;
}
void FaceCheck::WriteText()
{
FACE::gui::textLog->Items->Add(text);
}
然后,我将FACE::gui::textLog
中的gui.h
更改为public: static
我还阅读了有关检查textLog->InvokeRequired
的信息,但我没有使用Delegate
。
答案 0 :(得分:0)
我在这里找到了解决方法[link](https://msdn.microsoft.com/en-us/library/zyzhdc6b(v=vs.110).aspx)