初始化托管的线程数组

时间:2011-03-17 01:22:24

标签: visual-c++ c++-cli

我成功编译了以下代码,但我必须从中创建一个线程数组。

Form1^ form1obj = gcnew Form1();
Thread^ bfcaller = gcnew Thread(
gcnew ThreadStart(  form1obj, &Form1::bruteforce  ));
bfcaller->Start();

我通过制作这样的数组得到了错误:

array<Form1^>^ form1obj = gcnew array<Form1^>(25);
array<Thread^>^ bfcaller = gcnew array<Thread^>[25];

for (int counter = 0; counter < 25; counter++)
{
    bfcaller[counter] = gcnew Thread( gcnew ThreadStart(form1obj, &Form1::bruteforce));
}

我在哪里做错了?谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

代码中存在一些语法错误。

   gcnew array<Thread^>[25];

请勿使用方括号,请使用(25)

   gcnew ThreadStart(form1obj, &Form1::bruteforce)

第一个参数是错误的,它必须是对Form1实例的引用,而不是表单数组,因为bruteforce()是Form1的方法。也许你的意思是form1obj [counter]。