111,094
社区成员




public delegate void ValueChangedReceivedEventHandler();
public void ValueChanged()
{
if (this.InvokeRequired)
{
if (ScanThread.isStarted)
{
try
{
this.Invoke(new ValueChangedReceivedEventHandler(ValueChanged));
}
catch (Exception ex)
{
//return;
}
}
}
else
{
//此处处理ScanThread线程的扫描结果(结果是通过一个全局变量数组传过来的)
}
private frmMain _frmMain = null;
private MethodInvoker frmMainChange;
public ScanThread(frmMain f)
{
_frmMain = f;
frmMainChange = new MethodInvoker(_frmMain.ValueChanged);
}
public void ThreadRun()
{
//里面的代码就是sp1234在上一个帖子中提到的“催碎式设计”,每隔一毫秒去扫描一次所有监控点的状态得到一个数组,跟主窗体共享这个全局数组变量
frmMainChange.BeginInvoke(null, null);
}