110,571
社区成员
发帖
与我相关
我的任务
分享
private Thread thread;
private void FrmMain_Load(object sender, EventArgs e)
{
this.GenerateDefaultPage();
//启动新线程,读取数据
thread=new Thread(RW_sockets);
thread.IsBackground = true;
thread.Start();
//定时读写
timer1.Interval = 30000;//30s
timer1.Enabled = true;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
thread.Suspend();//把线程thread挂起来
Read_sockets("COM4");//定时器的操作
Write_sockets("COM4");//定时器操作
Write_sockets_save_energy("COM4");//线程操作
thread.Resume();//线程再次启动
}
private void RW_sockets()
{
线程里面的程序内容
}
//声明平台调用函数
[DllImport("user32.dll",EntryPoint="SendMessageA")]
public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
//发送消息(AppUtil是自定义类名,在需要发送消失的时候引用 比如你的timer1_Tick)
AppUtil.SendMessage(welHandler, (int)MsgParam.WM_DESTROY, 0, 1010);
//接收和响应消息
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if (m.Msg == (int)MsgParam.WM_DESTROY)
{
this.Close();
}
base.WndProc(ref m);
}
//说明:MsgParam.WM_DESTROY是对照消息机制的自定义枚举 比如这里是通知系统窗体关闭
//具体的消息机制和函数、参数等请参看相关资料 这里不再缀余