串口的触发事件是如何写出来的?

f1305147 2011-09-13 04:20:46
comm.DataReceived += comm_DataReceived;
}
以上是注册。
void comm_DataReceived(object sender, SerialDataReceivedEventArgs e)
这个触发事件是如何写出来的?尤其是参数。是怎么生出来的呢?
...全文
157 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lizhibin11 2011-09-13
  • 打赏
  • 举报
回复

//open时:
new Thread(new ThreadStart(this.eventRunner.WaitForCommEvent)) { IsBackground = true }.Start();

//WaitForCommEvent循环中的waitcommevent返回时:
this.CallEvents(this.eventsOccurred);

//CallEvents时:
if ((nativeEvents & 3) != 0)
{
ThreadPool.QueueUserWorkItem(this.callReceiveEvents, nativeEvents);
}

//callReceiveEvents时
target.DataReceived(target, new SerialDataReceivedEventArgs(SerialData.Chars));

你用reflector多看看.net源代码吧.
f1305147 2011-09-13
  • 打赏
  • 举报
回复
void comm_DataReceived(object sender, SerialDataReceivedEventArgs e)
这个触发事件是如何写出来的?尤其是参数。是怎么生出来的呢?
f1305147 2011-09-13
  • 打赏
  • 举报
回复
怎么写触发函数呢?
f1305147 2011-09-13
  • 打赏
  • 举报
回复
原理我是懂的。只是不知道那个函数是哪里生出来的?
lizhibin11 2011-09-13
  • 打赏
  • 举报
回复
是执行open的时候,.net会开启一个线程进入循环执行WaitCommEvent函数,这个函数在没有接收到字节或者其他异常事件时,会阻塞,当有新字节可以读取或者其他异常事件时,该函数会返回,.net会在此时调用相应的事件处理函数。
f1305147 2011-09-13
  • 打赏
  • 举报
回复
应该不是难题吧。没人知道吗?
丶云淡风轻丶 2011-09-13
  • 打赏
  • 举报
回复
顶顶
f1305147 2011-09-13
  • 打赏
  • 举报
回复
没人知道吗?
f1305147 2011-09-13
  • 打赏
  • 举报
回复
有人知道吗?
VB的控件,有事件列表。这个C#不知道是如何出来的?
f1305147 2011-09-13
  • 打赏
  • 举报
回复
void comm_DataReceived(object sender, SerialDataReceivedEventArgs e)

这个函数是如何写出来的?
_三皮_ 2011-09-13
  • 打赏
  • 举报
回复
是计算机硬件接口中有串口中断,硬件出发在发送给底层驱动,再传到我们的程序,作为事件来处理

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧