VSport.dll虚拟串口,创建太慢。

hjwenhai 2015-07-12 10:24:03
使用Eltima公司的VSort.dll COM控件创建虚拟串口速度太慢了。平均创建一个串口需要2s。由于客户需要多个虚拟串口(10个以上)。那需要的时间也太长了吧。哪位用过VSPOT,帮忙指导下。下面是代码:
  public partial class Form1 : Form
{
private Stopwatch stopwatch = new Stopwatch();
private VSPortAxClass[] vports = new VSPortAxClass[10]; //10个虚拟串口
IntPtr handle = IntPtr.Zero;
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
//添加所有串口
ComListcomboBox.Items.AddRange(System.IO.Ports.SerialPort.GetPortNames());
//新建
for (int i = 0; i < 10; i++)
{
vports[i] = new VSPortAxClass();
vports[i].DeleteOnExit = false;
}
}
//创建虚拟虚拟串口
private void button1_Click(object sender, EventArgs e)
{
int i=50;
stopwatch.Restart();
foreach (var vp in vports)
{
if (!ComListcomboBox.Items.Contains(string.Format("COM{0}", i)))
{
if (!vp.CreatePort(string.Format("COM{0}", i++)))
{
MessageBox.Show(string.Format("COM{0}创建不成功", i - 1));
break;
}
}
else
{
if ( !vp.Attach(string.Format("COM{0}", i++)))
{
MessageBox.Show(string.Format("COM{0}适配不成功", i - 1));
break;
}
}
}
stopwatch.Stop();
MessageBox.Show(string.Format("共消耗时间:{0}MS", stopwatch.ElapsedMilliseconds));
ComListcomboBox.Items.Clear();
ComListcomboBox.Items.AddRange(SerialPort.GetPortNames());
}
//删除串口
private void button2_Click(object sender, EventArgs e)
{
int i = 50;
stopwatch.Restart();
foreach (var vp in vports)
{
if (!vp.Delete())
{
MessageBox.Show(string.Format("COM{0}删除不成功", i++));
break;
}
}
stopwatch.Stop();
MessageBox.Show(string.Format("共消耗时间:{0}MS", stopwatch.ElapsedMilliseconds));
ComListcomboBox.Items.Clear();
ComListcomboBox.Items.AddRange(SerialPort.GetPortNames());
}
}
...全文
499 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
w295534955 2018-09-19
  • 打赏
  • 举报
回复
楼主能分享一下dll吗
金龙鱼55667 2017-07-21
  • 打赏
  • 举报
回复
VSport.dll是免费的吗?下载了个只能虚拟出一个串口
qianlin256 2016-07-20
  • 打赏
  • 举报
回复
楼主吧头文件和开发资料给我发一份吧 415316214@qq.com
Wier 2016-01-15
  • 打赏
  • 举报
回复
网上下载的似乎都不能用,CSDN上面下了好几个,VS都无法打开
Wier 2016-01-15
  • 打赏
  • 举报
回复
请问一下虚拟串口控件是在哪里下载的,初学菜鸟求教。
hjwenhai 2015-07-18
  • 打赏
  • 举报
回复
好了,试了其他的虚拟串口,后来用了faublatetech公司的虚拟串口控件,速度很快,10个1秒。后来在想他怎么这么快,原来是添加了服务程序。 谢谢前面两位的耐心解答。第一次发帖,分就给你们了吧。
hjwenhai 2015-07-12
  • 打赏
  • 举报
回复
@qq_26752965 那你创建虚拟串口,快吗? 因该都一样的。
qq_26752965 2015-07-12
  • 打赏
  • 举报
回复
不知道 用的 vc2012
hjwenhai 2015-07-12
  • 打赏
  • 举报
回复
没人用过吗?还发现一个问题,假设添加后再删除,然后再添加。速度快很多,10个虚拟串口不到一秒。
caoqinghua 2015-07-12
  • 打赏
  • 举报
回复
虚拟串口的创建速度不管你怎么优化.都不会有太大提升,如果不信你可以多实验比较成熟的几家软件. 当然也不是没有解决办法,虚拟串口的功能本质是将tcp/ip协议透明传输com.你直接用socket直连串口服务器等等硬件.如果是tcp client 单台服务器带几千台,作为server端时,带个2,3k设备问题也大.

110,534

社区成员

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

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

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