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)