我创建了一个 "Windows Form" 和第二个 "Thread" 。
我的表单有一个更改变量值的按钮。
我的第二个线程使用不可停止的循环来分析该变量。
因此,这是一个在该变量的值发生更改时更改表单文本的事件,但我不能在该“ThreadProcess”函数的块中拥有我的表单或任何控件,因为它是在那之后声明的。
我也不能在它之前声明我的表单,因为我需要在表单构造函数中使用“ThreadClass”。那我该怎么办?
using namespace System;
using namespace System :: Threading;
using namespace System :: Windows :: Forms;
namespace Program
{
static int Number = 0;
ref class ThreadClass
{
public : void ThreadProcess ()
{
int SavedNumber = Number;
while (1)
{
if(Number != SavedNumber)
{
this -> Text = "Changed";
SavedNumber = Number;
}
else
this -> Text = "Nothing Yet";
}
}
} ;
ref class MainForm : Form
{
Button ^ ChangeButton;
Thread ^ EventThread;
ThreadClass ^ EventThreadClass;
public : MainForm ()
{
EventThreadClass = gcnew ThreadClass ;
EventThread = gcnew Thread ( gcnew ThreadStart ( EventThreadClass, & ThreadClass :: ThreadProcess ) ) ;
EventThread -> IsBackground = true;
ChangeButton = gcnew Button ();
ChangeButton -> Click += gcnew EventHandler (this, & MainForm :: CloseButtonEventProcess);
Controls -> Add (ChangeButton);
EventThread -> Start ();
}
void CloseButtonEventProcess (Object ^ Sender , EventArgs ^ EA)
{
Number ++;
}
} ;
}