DLL 接受数据 请教
小弟最近在做一个与硬件通信的API程序,目前就是制作一个DLL文件,把数据的接收、发送、处理函数都写在里面,现在通讯都可以实现,但是有个问题自己没有好的实现方法,以TCP为例://TCP接收信息
public void recieve(TcpClient tcpClient)
{
if (tcpClient.Connected)
{
Thread _createServer = new Thread(new ThreadStart(Accept));
_createServer.Start();
}
else
{
}
}
public void Accept()
{
netStream = tcpClient.GetStream();
//StreamReader sr = new StreamReader(ns);//流读写器
//字组处理
while (true)
{
try
{
byte[] bytes = new byte[1024];
int bytesread = netStream.Read(bytes, 0, bytes.Length);
string msg = Encoding.Default.GetString(bytes, 0, bytesread);
netStream.Flush();//刷新流中的数据
//netStream.Close();
this.Invoke((EventHandler)delegate { richTextBox1.Text += msg; });//接收数据后的具体操作
}
catch (Exception ex)
{
break;
//MessageBox.Show ("与服务器断开连接了");
MessageBox.Show(ex.Message);
//return "";
}
}
}
这段TCP接受数据代码写在form里是可以持续接收并显示出来的。
但是我想把接收数据这段代码写在DLL里面,并且数据接收后的操作函数还是需要留在winform里。
不知道我的描述清不清楚,就是把接收数据的过程写在DLL里,而接收后的具体操作写在winform里,就像串口类中的serialPort1_DataReceived函数一样。可以让用户编码处理接到的数据。
现在请教各位英雄们,具体能用什么样的模式实现呢?在DLL里用一个线程接收数据,然后在winform里用另一个线程监视有没有接收到数据?在winform中越简单越好,API给别人用当然是winform中越简单越好用。小弟编程是半路出家的,学艺不精,望英雄指点迷津。 --------------------编程问答-------------------- dll中加入回调函数
补充:.NET技术 , C#