1

我只是在浏览 msdn 并找到了这个页面。我从未见过这些功能SerialPort.Flush()SerialPort.Finalize()以前。所以我尝试使用这些功能,但出现错误。

我添加了System.IO.Ports命名空间,但Finalize()函数出现以下错误:

Cannot access protected member 'object.~Object()' via a qualifier of type 'System.IO.Ports.SerialPort'; the qualifier must be of type 'STP_Design.SerialCom' (or derived from it)

我在函数上收到以下错误Flush()

'System.IO.Ports.SerialPort' does not contain a definition for 'Flush' and no extension method 'Flush' accepting a first argument of type 'System.IO.Ports.SerialPort' could be found (are you missing a using directive or an assembly reference?)

我想我正在使用错误的方法访问 finalizing 函数(我可能根本不能访问它),但我真的想知道这个Flush()函数怎么样。

我用过这样的东西:

    private void test()
    {
        SerialPort s1 = new SerialPort();
        s1.PortName = "COM1";
        s1.Open();
        thread.Sleep(200);
        s1.WriteLine("test");
        s1.Flush();
        s1.Close();
        thread.Sleep(200);
        s1.Finalize();
    }

这里有什么见解吗?

编辑:使用 SerialPort.Dispose(boolean) 函数遇到了同样的问题可选的布尔值也无法访问......

4

2 回答 2

3

http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx:没有Flush。您正在查看 .Net Micro Framework,它显然有一个Flush

垃圾回收结束时,GC 会调用终结器。用户代码不能从外部访问它们,也不应该显式调用它们。

于 2012-12-10T09:10:12.427 回答
0

您可以使用 DiscardInBuffer() 和 DiscardOutBuffer()

于 2020-11-20T07:58:08.047 回答