Questo è il codice della finestra che crea il thread e lo fa partire:
codice:
public partial class Form1 : Form
{
serialThread serialObject;
public Form1()
{
InitializeComponent();
serialObject = new serialThread(this); //passo la finestra
Thread workerThread = new Thread(serialObject.DoWork);
workerThread.Start();
....
Questo è il codice del mio thread:
codice:
class serialThread
{
private Form1 f;
private volatile SerialPort serialPort;
internal serialThread(Form1 _f) //il costruttore inizializza la serial Port
{
f = _f;
serialPort = new SerialPort();
serialPort.BaudRate = 115200;
serialPort.PortName = "COM6";
}
public SerialPort serialPort1
{
get { return serialPort; }
}
// This method will be called when the thread is started.
public void DoWork()
{
}
/*va partire il polling sulla seriale.Praticamente è un ciclo while che fa continue Read su seriale e si stoppa quando arrivano dati.Questa funzione blocca tutto*/
public void atrivaPolling(libgeneric primitiva)
{
byte polling = globalVariables.POLLINGA;
bool d = true;// Debug on
byte[] status = new byte[10];
string result = primitiva.setPolling(polling, status, d);
}
}
}