diff --git a/src/modules/MouseWithoutBorders/App/Class/Common.Clipboard.cs b/src/modules/MouseWithoutBorders/App/Class/Common.Clipboard.cs index 7654b0452d04..3f5ace6900e5 100644 --- a/src/modules/MouseWithoutBorders/App/Class/Common.Clipboard.cs +++ b/src/modules/MouseWithoutBorders/App/Class/Common.Clipboard.cs @@ -262,6 +262,10 @@ private static void SendClipboardDataUsingTCP(byte[] bytes, bool image) new Task(() => { + // SuppressFlow fixes an issue on service mode, where the helper process can't get enough permissions to be started again. + // More details can be found on: https://github.com/microsoft/PowerToys/pull/36892 + using var asyncFlowControl = ExecutionContext.SuppressFlow(); + System.Threading.Thread thread = Thread.CurrentThread; thread.Name = $"{nameof(SendClipboardDataUsingTCP)}.{thread.ManagedThreadId}"; Thread.UpdateThreads(thread); @@ -386,6 +390,10 @@ internal static void GetRemoteClipboard(string postAction) new Task(() => { + // SuppressFlow fixes an issue on service mode, where the helper process can't get enough permissions to be started again. + // More details can be found on: https://github.com/microsoft/PowerToys/pull/36892 + using var asyncFlowControl = ExecutionContext.SuppressFlow(); + System.Threading.Thread thread = Thread.CurrentThread; thread.Name = $"{nameof(ConnectAndGetData)}.{thread.ManagedThreadId}"; Thread.UpdateThreads(thread); diff --git a/src/modules/MouseWithoutBorders/App/Class/Common.Helper.cs b/src/modules/MouseWithoutBorders/App/Class/Common.Helper.cs index ccbec575081b..a27df9a073da 100644 --- a/src/modules/MouseWithoutBorders/App/Class/Common.Helper.cs +++ b/src/modules/MouseWithoutBorders/App/Class/Common.Helper.cs @@ -72,6 +72,10 @@ private static void WatchDogThread() private static void HelperThread() { + // SuppressFlow fixes an issue on service mode, where the helper process can't get enough permissions to be started again. + // More details can be found on: https://github.com/microsoft/PowerToys/pull/36892 + using var asyncFlowControl = System.Threading.ExecutionContext.SuppressFlow(); + try { while (true) diff --git a/src/modules/MouseWithoutBorders/App/Class/Program.cs b/src/modules/MouseWithoutBorders/App/Class/Program.cs index 011b1cfdc975..3e3795f6efd3 100644 --- a/src/modules/MouseWithoutBorders/App/Class/Program.cs +++ b/src/modules/MouseWithoutBorders/App/Class/Program.cs @@ -379,6 +379,10 @@ internal static void StartInputCallbackThread() private static void InputCallbackThread() { + // SuppressFlow fixes an issue on service mode, where the helper process can't get enough permissions to be started again. + // More details can be found on: https://github.com/microsoft/PowerToys/pull/36892 + using var asyncFlowControl = ExecutionContext.SuppressFlow(); + Common.InputCallbackThreadID = Thread.CurrentThread.ManagedThreadId; while (!Common.InitDone) { diff --git a/src/modules/MouseWithoutBorders/App/Class/SocketStuff.cs b/src/modules/MouseWithoutBorders/App/Class/SocketStuff.cs index 31b047a837e5..d7ff395ce974 100644 --- a/src/modules/MouseWithoutBorders/App/Class/SocketStuff.cs +++ b/src/modules/MouseWithoutBorders/App/Class/SocketStuff.cs @@ -681,6 +681,10 @@ internal int TcpSend(TcpSk tcp, DATA data) private void TCPServerThread(object param) { + // SuppressFlow fixes an issue on service mode, where the helper process can't get enough permissions to be started again. + // More details can be found on: https://github.com/microsoft/PowerToys/pull/36892 + using var asyncFlowControl = ExecutionContext.SuppressFlow(); + try { TcpListener server = param as TcpListener; @@ -768,6 +772,10 @@ private void StartNewTcpServer(TcpSk tcp, string machineName) { void ServerThread() { + // SuppressFlow fixes an issue on service mode, where the helper process can't get enough permissions to be started again. + // More details can be found on: https://github.com/microsoft/PowerToys/pull/36892 + using var asyncFlowControl = ExecutionContext.SuppressFlow(); + try { // Receiving packages @@ -876,6 +884,10 @@ internal void StartNewTcpClient(string machineName) { void ClientThread(object obj) { + // SuppressFlow fixes an issue on service mode, where the helper process can't get enough permissions to be started again. + // More details can be found on: https://github.com/microsoft/PowerToys/pull/36892 + using var asyncFlowControl = ExecutionContext.SuppressFlow(); + IPHostEntry host; bool useName2IP = false; List validAddresses = new(); @@ -1117,6 +1129,10 @@ private void StartNewTcpClientThread(string machineName, IPAddress ip) { void NewTcpClient() { + // SuppressFlow fixes an issue on service mode, where the helper process can't get enough permissions to be started again. + // More details can be found on: https://github.com/microsoft/PowerToys/pull/36892 + using var asyncFlowControl = ExecutionContext.SuppressFlow(); + TcpClient tcpClient = null; try @@ -1549,6 +1565,10 @@ private void MainTCPRoutine(TcpSk tcp, string machineName, bool isClient) private static void AcceptConnectionAndSendClipboardData(object param) { + // SuppressFlow fixes an issue on service mode, where the helper process can't get enough permissions to be started again. + // More details can be found on: https://github.com/microsoft/PowerToys/pull/36892 + using var asyncFlowControl = ExecutionContext.SuppressFlow(); + TcpListener server = param as TcpListener; do @@ -1590,6 +1610,10 @@ private static void AcceptConnectionAndSendClipboardData(object param) { new Task(() => { + // SuppressFlow fixes an issue on service mode, where the helper process can't get enough permissions to be started again. + // More details can be found on: https://github.com/microsoft/PowerToys/pull/36892 + using var asyncFlowControl = ExecutionContext.SuppressFlow(); + System.Threading.Thread thread = Thread.CurrentThread; thread.Name = $"{nameof(SendOrReceiveClipboardData)}.{thread.ManagedThreadId}"; Thread.UpdateThreads(thread);