diff --git a/snippets/fsharp/System/TimeoutException/Overview/fs.fsproj b/snippets/fsharp/System/TimeoutException/Overview/fs.fsproj new file mode 100644 index 00000000000..d7d27929a83 --- /dev/null +++ b/snippets/fsharp/System/TimeoutException/Overview/fs.fsproj @@ -0,0 +1,13 @@ + + + Exe + net6.0 + + + + + + + + + \ No newline at end of file diff --git a/snippets/fsharp/System/TimeoutException/Overview/to.fs b/snippets/fsharp/System/TimeoutException/Overview/to.fs new file mode 100644 index 00000000000..9f2458e8ad5 --- /dev/null +++ b/snippets/fsharp/System/TimeoutException/Overview/to.fs @@ -0,0 +1,42 @@ +// +// This example demonstrates the use of the TimeoutException +// exception in conjunction with the SerialPort class. + +open System +open System.IO.Ports + +try +// Set the COM1 serial port to speed = 4800 baud, parity = odd, +// data bits = 8, stop bits = 1. + let sp = new SerialPort("COM1", 4800, Parity.Odd, 8, StopBits.One) +// Timeout after 2 seconds. + sp.ReadTimeout <- 2000 + sp.Open() + +// Read until either the default newline termination string +// is detected or the read operation times out. + let input = sp.ReadLine() + + sp.Close() + +// Echo the input. + printfn $"{input}" + +// Only catch timeout exceptions. +with :? TimeoutException as e -> + printfn $"{e}" +(* +This example produces the following results: + +(Data received at the serial port is echoed to the console if the +read operation completes successfully before the specified timeout period +expires. Otherwise, a timeout exception like the following is thrown.) + +System.TimeoutException: The operation has timed-out. + at System.IO.Ports.SerialStream.ReadByte(Int32 timeout) + at System.IO.Ports.SerialPort.ReadOneChar(Int32 timeout) + at System.IO.Ports.SerialPort.ReadTo(String value) + at System.IO.Ports.SerialPort.ReadLine() + at Sample.main() +*) +// \ No newline at end of file diff --git a/xml/System/TimeoutException.xml b/xml/System/TimeoutException.xml index 57850f8fa00..c911f59410d 100644 --- a/xml/System/TimeoutException.xml +++ b/xml/System/TimeoutException.xml @@ -75,6 +75,7 @@ :::code language="cpp" source="~/snippets/cpp/VS_Snippets_CLR/TimeoutException.class/cpp/to.cpp" id="Snippet1"::: :::code language="csharp" source="~/snippets/csharp/System/TimeoutException/Overview/to.cs" id="Snippet1"::: + :::code language="fsharp" source="~/snippets/fsharp/System/TimeoutException/Overview/to.fs" id="Snippet1"::: :::code language="vb" source="~/snippets/visualbasic/VS_Snippets_CLR/TimeoutException.class/VB/to.vb" id="Snippet1"::: ]]>