From 75c004eaef42a88d663b3d7d0bac2f712486c641 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 3 Oct 2025 14:42:19 +0000 Subject: [PATCH 1/2] Initial plan From ac26959c273e71a39fc6b98ac154767d21c55e46 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 3 Oct 2025 14:47:52 +0000 Subject: [PATCH 2/2] Remove misleading statement about background threads in async operations Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com> --- docs/fsharp/language-reference/async-expressions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fsharp/language-reference/async-expressions.md b/docs/fsharp/language-reference/async-expressions.md index 7c30adeb431fd..efddc31571a6e 100644 --- a/docs/fsharp/language-reference/async-expressions.md +++ b/docs/fsharp/language-reference/async-expressions.md @@ -17,7 +17,7 @@ async { expression } ## Remarks -In the previous syntax, the computation represented by `expression` is set up to run asynchronously, that is, without blocking the current computation thread when asynchronous sleep operations, I/O, and other asynchronous operations are performed. Asynchronous computations are often started on a background thread while execution continues on the current thread. The type of the expression is `Async<'T>`, where `'T` is the type returned by the expression when the `return` keyword is used. +In the previous syntax, the computation represented by `expression` is set up to run asynchronously, that is, without blocking the current computation thread when asynchronous sleep operations, I/O, and other asynchronous operations are performed. The type of the expression is `Async<'T>`, where `'T` is the type returned by the expression when the `return` keyword is used. The [`Async`](https://fsharp.github.io/fsharp-core-docs/reference/fsharp-control-fsharpasync.html) class provides methods that support several scenarios. The general approach is to create `Async` objects that represent the computation or computations that you want to run asynchronously, and then start these computations by using one of the triggering functions. The triggering you use depends on whether you want to use the current thread, a background thread, or a .NET task object. For example, to start an async computation on the current thread, you can use [`Async.StartImmediate`](https://fsharp.github.io/fsharp-core-docs/reference/fsharp-control-fsharpasync.html#StartImmediate). When you start an async computation from the UI thread, you do not block the main event loop that processes user actions such as keystrokes and mouse activity, so your application remains responsive.