C++ _Windows窗体应用程序中beginthread的实现

C++ _Windows窗体应用程序中beginthread的实现,c++,cdecl,C++,Cdecl,我曾尝试在Windows窗体应用程序中使用simple _beginthread函数创建线程,但通过制作控制台应用程序成功地创建了线程 private: System::Void __cdecl counter() { do { Sleep(1); stan++; label1->Text = stan.ToString(); } whi

我曾尝试在Windows窗体应用程序中使用simple _beginthread函数创建线程,但通过制作控制台应用程序成功地创建了线程

private: System::Void __cdecl counter() {
             do {
                 Sleep(1);
                 stan++;
                 label1->Text = stan.ToString();
             } while(true);
             _endthread();
         }

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
             button1->Enabled = false;
             HANDLE licznik = (HANDLE) _beginthread(counter(), 0, 0);
         }
};`
我的错误和警告是:

c:\users\artur\desktop\clock\thread\u clock\thread\u clock\Form1.h117:警告C4441:忽略了'\uu cdecl'的调用约定;'__改为使用“clrcall” 1> c:\users\artur\desktop\clock\thread\U clock\thread\U clock\Form1.h128:错误C2664:“\U beginthread”:无法将参数1从“void”转换为“void” 1> void类型的表达式无法转换为其他类型


如何防止这种情况发生?

计数器调用函数计数器。如果要将函数作为参数传递,请使用不带参数的名称计数器。如果已经尝试过,删除参数后,将显示:1>c:\users\artur\desktop\clock\thread\U clock\thread\U clock\Form1.h128:错误C3867:“thread\U clock::Form1::counter”:函数调用缺少参数列表;使用“&thread_clock::Form1::counter”创建指向成员的指针为什么不直接使用?此外,您不应该从另一个线程更新GUI,请使用form->Invoke。