screenthread.cpp
来自「基于USB接口的GPS应用程序」· C++ 代码 · 共 60 行
CPP
60 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "screenthread.h"
#include "display.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// Important: Methods and properties of objects in VCL can only be
// used in a method called using Synchronize, for example:
//
// Synchronize(UpdateCaption);
//
// where UpdateCaption could look like:
//
// void __fastcall Unit1::UpdateCaption()
// {
// Form1->Caption = "Updated in a thread";
// }
//---------------------------------------------------------------------------
__fastcall ScreenThread::ScreenThread(bool CreateSuspended, void* p)
: TThread(CreateSuspended)
{
p_form = reinterpret_cast<TForm1*> (p);
p_gpsnav = p_form->get_gpsnav_pt();
p_gpsfunc = p_form->get_gpsfunc_pt();
FreeOnTerminate = false;
count = 0;
}
//---------------------------------------------------------------------------
void __fastcall ScreenThread::Execute()
{
//---- Place thread code here ----
while(!Terminated)
{
WaitForSingleObject( dispEvent, INFINITE );
p_gpsnav->get_rawdata( &DispRawdata );
p_gpsnav->get_trkloop( result_pt );
p_gpsfunc->get_navinfo(&DispNavInfo);
count ++;
Synchronize(update_disp);
}
}
void __fastcall ScreenThread::update_disp()
{
p_form->update_allchannel(&DispRawdata);
p_form->update_trkloop(result_pt);
p_form->update_navresult(&DispNavInfo);
p_form->update_disp();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?