小编Rob*_*gel的帖子

释放未插入的虚拟串行端口

我的USB条形码扫描仪有点问题.我正在使用带有"SerialPort"类的Scanner:

        this._barcodeScanner = new SerialPort(comPort, 9600, Parity.None, 8, StopBits.One) { Handshake = Handshake.None, ReadTimeout = 500, WriteTimeout = 500 };
        this._barcodeScanner.Open();
        this._barcodeScanner.DataReceived += BarcodeScannerCallback;
Run Code Online (Sandbox Code Playgroud)

如果我通过"SerialPort"类打开USB设备,我就无法正常关闭软件,虚拟端口永远保持打开状态,或直到我重启整个计算机.

所以我的问题是,在我通过C#代码拔出设备后,有没有办法关闭虚拟端口?

问候

[编辑#1]

好的,还有一些代码:

这样,如果设备已插入,我每隔10秒检查一次:

    private bool CheckUsbDeviceAvailability()
    {
        ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI",
        "SELECT * FROM MSSerial_PortName WHERE PortName = '" + this.PortName + "'");

        if (searcher.Get().Count > 0)
            return true;
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

那是串口的Callback-Event:

void BarcodeScannerCallback(object sender, SerialDataReceivedEventArgs e)
    {
        Thread.Sleep(500);
        string data = this._barcodeScanner.ReadExisting().Replace(Convert.ToChar(2), Convert.ToChar(32)).Trim();
        if (data.StartsWith("AX"))
        {
            string[] arrData = data.Split('\n'); …
Run Code Online (Sandbox Code Playgroud)

c# usb serial-port barcode

9
推荐指数
1
解决办法
7450
查看次数

没有虚拟化的WPF DataGrid性能

我刚才有一个关于Microsofts PresentationFramework的问题DataGrid:

我有一个ObservableCollection<TestModel>.TestModel是一个简单的类,具有20个Int属性......仅此而已.在我的测试中,我有50个参赛作品ObservableCollection.总的来说,我有1000个细胞(20*50).所有这些单元格都会立即显示,因此实际上无法实现虚拟化.

这是我的网格:

<DataGrid AutoGenerateColumns="true" RowHeight="20" ItemsSource="{Binding DataGridModelSource}"/>
Run Code Online (Sandbox Code Playgroud)

在我看来,要呈现的1000个单元格不是很多......虽然它需要,取决于我运行此测试的系统,大约需要1到3秒来渲染这些1000个单元格.那是相当多的,不是吗?

我使用DataGridsC1,Infragistics,Mindscape或DX中的一个定制进行了相同的测试,并且使用所有这些网格将渲染这1000个单元的时间减少到大约100ms.

那么微软有DataGrid什么意义呢?有什么方法可以改善性能吗?我错过了什么吗?

c# wpf performance datagrid mvvm

6
推荐指数
1
解决办法
501
查看次数

标签 统计

c# ×2

barcode ×1

datagrid ×1

mvvm ×1

performance ×1

serial-port ×1

usb ×1

wpf ×1