неверный инициализатор делегата -- функция не соответствует типу делегата

avatar
Comyar D
1 июля 2021 в 19:06
264
1
-1

Я пытаюсь создать поток в Visual C++, но получаю эту ошибку invalid delegate initializer -- function does not match the delegate type и это применяется к тому месту, где я передаю свой метод в поток.

COM_Selector^ port;
    Thread^ t;

    public: void thread_method(Object^ data) {
        port->checkConnection(t);
    }

    private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) {
        t = gcnew Thread(gcnew ThreadStart(this, thread_method));
        try {
            if (!t->IsAlive) {
                t->IsBackground = true;
                t->Start();
            }
            else {
                t->IsBackground = true;
            }
        }
        catch (Exception^ ex) {
            Console::WriteLine(ex);
        }
    }
    ```
Источник

Ответы (1)

avatar
Comyar D
1 июля 2021 в 21:00
-1

Я исправил это, сделав его ParameterizedThreadStart вместо этого, поскольку у меня был параметр в моем методе, о котором я упоминал, поэтому я изменил эту строку кода на эту --

t = gcnew Thread(gcnew ParameterizedThreadStart(this, &MyForm::thread_method));