Multithreading 如何通过ComPort发送可写的位图?
我们每30毫秒更新一次WriteableBitmapMultithreading 如何通过ComPort发送可写的位图?,multithreading,serial-port,writeablebitmap,Multithreading,Serial Port,Writeablebitmap,我们每30毫秒更新一次WriteableBitmap private void dt_Tick(object sender, EventArgs e) { wbm.Clear(); wbm.Blit(r, wbr, r); wbm.Blit(r, wbl, r); } 现在我必须通过虚拟com端口发送它。 这应该通过线程来完成 private void init_DataOut() { try
private void dt_Tick(object sender, EventArgs e)
{
wbm.Clear();
wbm.Blit(r, wbr, r);
wbm.Blit(r, wbl, r);
}
现在我必须通过虚拟com端口发送它。
这应该通过线程来完成
private void init_DataOut()
{
try
{
//the parameters are not important this is done by VirtualComPort
serial = new SerialPort();
serial.WriteBufferSize = 64;
serial = new SerialPort();
serial.PortName = SerialPortName;
serial.BaudRate = 921600;
serial.Parity = Parity.None;
serial.DataBits = 8;
serial.StopBits = StopBits.None;
serial.ReadTimeout = 200;
serial.WriteTimeout = 1;
serial.Open();
T_DataOut = new Thread(SendData);
T_DataOut.Start();
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
public void SendData()
{
try
{
for (; ; )
{
for (int i = 0; i <42 ; i++)
{
for (int j = 0; j < 68; j++)
{
serial.Write(wb.GetPixel(i,j).ToString());
}
}
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
我现在的问题是如何更新sendData中的writeablebitmapwb。
这是使用ParameterizedThread完成的吗?通过串行端口发送位图是。。。奇怪的考虑到虚拟线路另一端的任何东西都需要了解WriteableBitmap的外观,并且只有PC才符合要求,你当然会使用套接字或命名管道。这根本不是一个聪明的问题。我把它转换成bytearray并发送出去。bitmapbuffer=wbm.ToByteArray;pw.data.setTransferBytes=bitmapbuffer;serial.WritetransferBytes,0,transferBytes.Length;