110,534
社区成员
发帖
与我相关
我的任务
分享
//构造函数给委托指定方法,应为线程中会操作界面控件(但对界面控件的操作代码还没写就有点卡)
public frmMain()
{
InitializeComponent();
this.getLoadA = this.getAData;
this.getLoadB = this.getBData;
}
bool isAThreadEnd = false;
bool isBThreadEnd = false;
//A委托
public delegate void setASDelegate();
private setASDelegate getLoadA;
//B委托
public delegate void setBDelegate();
private setBDelegateg etLoadB;
//允许A操作控件
private void ThreadAMethod()
{
this.Invoke(this.getLoadA);
}
//允许B操作控件
private void ThreadBMethod()
{
this.Invoke(this.getLoadB);
}
//开启A线程
private void startAThread()
{
ThreadStartGetAData = new Thread(new ThreadStart(this.ThreadAMethod));
ThreadStartGetAData .Start();
}
//开启B线程
private void startBThread()
{
ThreadStartGetBData = new Thread(new ThreadStart(this.ThreadBMethod));
ThreadStartGetBData .Start();
}
private void getAData()
{
//各种操作,暂时没写界面控件控制代码执行完后isAThreadEnd赋值true
isAThreadEnd=true;
}
private void getBData()
{
//各种操作,暂时没写界面控件控制代码执行完后isBThreadEnd赋值true
isBThreadEnd=true;
}
//单击按钮开始线程
private void toolStripMenuItem2_Click(object sender, EventArgs e)
{
this.startAThread();
this.startBThread();
}
//程序运行后即可执行
private void timer1_Tick(object sender, EventArgs e)
{
if (isASThreadEnd == true)
{
this.startAThread();
}
if (isBThreadEnd == true)
{
this.startBThread();
}
}