Tworzenie 2 wątku w cpp/cli 2k10

0

Witam, chce sobie utworzyc 2 wątek startujący po kliknięciu przez użytkownika przycisku, musiałby on mieć dostęp do funkcji z formy1
Napisałem takie coś, wszystko się dobrze kompiluje ale funkcja cos nie dziala ;x

 public: void DoWork(){
   listBox2->Items->Add("he");
   }

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {    
	Form1^ threadWork = gcnew Form1;
   Thread^ newThread = gcnew Thread( gcnew ThreadStart( threadWork, &youtube12::Form1::DoWork ) );
   newThread->Start();
}

Próbowałem też czegoś takiego:

    static DWORD threadLoad(LPVOID lpParameter, System::Object^  sender, System::EventArgs^  e)
    {

return ((DWORD)lpParameter);
	}

w buttonie:
Thread^ oThread = gcnew Thread( gcnew ThreadStart( &ThreadProc ) );
  oThread->Start();
 CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)threadLoad(0, sender, e), 0, 0, 0);

oraz (tu crashuje);


static UINT WritingThreadFunc(LPVOID pParam)
{

    return true;
}

i w buttonie:
CWinThread *m_pThread;
	m_pThread = AfxBeginThread((AFX_THREADPROC)WritingThreadFunc,NULL);
0

nie wiem co oznacza "funkcja cos nie dziala" ani "tu crashuje".
w podobnym stylu odpowiadajac:

sadze ze powinienes cos zrobic. moze sprobuj napisac to lepiej? coś zawsze u mnie działało poprawnie.

a tak na serio, patrząc po Twoim DoWork() z pierwszego wycinka, pewnie dostajesz CrossThread-Exception, wiec poczytaj o nim i odzwyczaj sie od modyfikowania kontrolek wprost z wątków roboczych, albo stosuj się do "protokołu". I niech Cie NIE KORCI wyłączać ten wyjątek - bo można.

1 użytkowników online, w tym zalogowanych: 0, gości: 1