diff --git a/MTSC/MTSC.csproj b/MTSC/MTSC.csproj index 799936d..18e60fc 100644 --- a/MTSC/MTSC.csproj +++ b/MTSC/MTSC.csproj @@ -5,13 +5,13 @@ netstandard2.0 - 5.5.1 + 5.5.2 latest Alexandru-Victor Macocian MTSC Modular TCP Server and Client - 5.5.1.0 - 5.5.1.0 + 5.5.2.0 + 5.5.2.0 true AnyCPU;x64 https://github.com/AlexMacocian/MTSC diff --git a/MTSC/ServerSide/Listeners/TcpSocketListener.cs b/MTSC/ServerSide/Listeners/TcpSocketListener.cs index 9ec3901..00b7422 100644 --- a/MTSC/ServerSide/Listeners/TcpSocketListener.cs +++ b/MTSC/ServerSide/Listeners/TcpSocketListener.cs @@ -50,14 +50,14 @@ namespace MTSC.ServerSide.Listeners } this.socket.Listen(50); - Task.Run(async () => + new TaskFactory().StartNew(async () => { while (this.socket is not null) { var clientSocket = await this.socket.AcceptAsync(); this.acceptedSockets.Enqueue(clientSocket); } - }); + }, TaskCreationOptions.LongRunning); } } diff --git a/MTSC/ServerSide/Schedulers/FireTasksAndForgetScheduler.cs b/MTSC/ServerSide/Schedulers/FireTasksAndForgetScheduler.cs index d0651ed..9dee107 100644 --- a/MTSC/ServerSide/Schedulers/FireTasksAndForgetScheduler.cs +++ b/MTSC/ServerSide/Schedulers/FireTasksAndForgetScheduler.cs @@ -8,9 +8,11 @@ namespace MTSC.ServerSide.Schedulers { public sealed class FireTasksAndForgetScheduler : IScheduler { + private readonly TaskFactory taskFactory = new TaskFactory(); + public void ScheduleBackgroundService(BackgroundServiceBase backgroundServiceBase) { - Task.Run(() => backgroundServiceBase.Execute()); + this.taskFactory.StartNew(() => backgroundServiceBase.Execute(), TaskCreationOptions.LongRunning); } public void ScheduleHandling(List<(ClientData, IConsumerQueue)> clientsQueues, Action> messageHandlingProcedure) @@ -18,7 +20,7 @@ namespace MTSC.ServerSide.Schedulers foreach(var tuple in clientsQueues) { (var client, var messageQueue) = tuple; - Task.Run(() => messageHandlingProcedure.Invoke(client, messageQueue)); + this.taskFactory.StartNew(() => messageHandlingProcedure.Invoke(client, messageQueue), TaskCreationOptions.LongRunning); } } } diff --git a/MTSC/ServerSide/Server.cs b/MTSC/ServerSide/Server.cs index 3a2db13..1510b54 100644 --- a/MTSC/ServerSide/Server.cs +++ b/MTSC/ServerSide/Server.cs @@ -513,7 +513,7 @@ namespace MTSC.ServerSide { var client = this.Listener.AcceptSocket(); var clientStruct = new ClientData(client); - Task.Run(() => this.AcceptClient(clientStruct)); + new TaskFactory().StartNew(() => this.AcceptClient(clientStruct), this.cancellationToken, TaskCreationOptions.LongRunning, TaskScheduler.Current); } } catch (Exception e)