C#的串口程序 为什么有时候点关闭串口时会卡死

privatevoidserialPort1_DataReceived(objectsender,SerialDataReceivedEventArgse){string... private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{

string a = "";
if (serialPort1.IsOpen)
{
a = serialPort1.ReadExisting();
appendtextbox(a);
}
}
public void appendtextbox(string app)
{
if (Port_Data_Receive.InvokeRequired)
{
Rece mi = new Rece(appendtextbox);
this.Invoke(mi, app);
}
else
{
this.Port_Data_Receive.SuspendLayout();
StringBuilder str = new StringBuilder(Port_Data_Receive.Text);
str = str.Append(app);
Port_Data_Receive.Text = Convert.ToString(str);
Port_Data_Receive.ResumeLayout(false);
}

}
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏20(财富值+成长值)
匿名用户
2015-06-08
展开全部
是界面卡死?是不是当时还有数据在接收?

数据处理建议用多线程哦。
追问
点击串口关闭按钮时 ,界面卡死   ,但窗口数据还在更新 ;
听说在打开串口是会自动建立一个监听线程 用于检测串口DataReceived事件
追答
但是你数据处理的线程还是和控件的线程是同一线程啊。
监听线程和处理线程不一样的。出现界面卡死的情况,建议你用多线程来处理吧。http://www.cnblogs.com/cpcpc/archive/2012/07/02/2572711.html
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式