Chciałbym napisać prosty programik czytający z portu RS232 do textBox'a.
Zrobiłem poniższy kod i działa (czyta i wyświetla co przeczytał z portu RS232), jednakże kiedy próbuję zamknąć aplikacje to okienko się zawiesza i formatka się nie wyłącza.
Czy macie jakiś pomysł jak usprawnić kod żeby aplikacja się nie wieszała?
private: System::Void MyForm_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {
this->serialPort1->Close();
delegate void SetRichTextDelegateType(System::String ^);
private: System::Void serialPort1_DataReceived(System::Object^ sender, System::IO::Ports::SerialDataReceivedEventArgs^ e) {
String^ myString = serialPort1->ReadLine();
SetRichTextDelegateType ^pfnDelegate = gcnew SetRichTextDelegateType(this, &MyForm::SetRichText);
this->textBox1->Invoke(pfnDelegate, myString);
}
private: void SetRichText(String ^myString)
// wątek do zapisu tekstu pobranego z portu
{
try {
textBox1->AppendText(myString);
}
catch (Win32Exception^ ex)
{
MessageBox::Show(ex->Message);}
}