diff --git a/MTSC/MTSC.csproj b/MTSC/MTSC.csproj index ce1462b..9c10e72 100644 --- a/MTSC/MTSC.csproj +++ b/MTSC/MTSC.csproj @@ -5,12 +5,12 @@ netcoreapp2.1;net48;netstandard2.0;netcoreapp3.0 - 2.1.1 + 2.1.2 Alexandru-Victor Macocian MTSC Modular TCP Server and Client - 0.2.1.1 - 0.2.1.1 + 0.2.1.2 + 0.2.1.2 true AnyCPU;x64 https://github.com/AlexMacocian/MTSC diff --git a/MTSC/ServerSide/Schedulers/SequentialProcessingScheduler.cs b/MTSC/ServerSide/Schedulers/SequentialProcessingScheduler.cs new file mode 100644 index 0000000..edb0ffa --- /dev/null +++ b/MTSC/ServerSide/Schedulers/SequentialProcessingScheduler.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Concurrent; + +namespace MTSC.ServerSide.Schedulers +{ + public class SequentialProcessingScheduler : IScheduler + { + void IScheduler.ScheduleHandling(IProducerConsumerCollection<(ClientData, Message)> inQueue, Action messageHandlingProcedure) + { + while (inQueue.TryTake(out var tuple)) + { + (var client, var message) = tuple; + messageHandlingProcedure.Invoke(client, message); + } + } + } +} diff --git a/MTSC/ServerSide/Schedulers/TaskAwaiterScheduler.cs b/MTSC/ServerSide/Schedulers/TaskAwaiterScheduler.cs index 9f5c751..4debaaf 100644 --- a/MTSC/ServerSide/Schedulers/TaskAwaiterScheduler.cs +++ b/MTSC/ServerSide/Schedulers/TaskAwaiterScheduler.cs @@ -5,7 +5,7 @@ using System.Threading.Tasks; namespace MTSC.ServerSide.Schedulers { - class TaskAwaiterScheduler : IScheduler + public class TaskAwaiterScheduler : IScheduler { void IScheduler.ScheduleHandling(IProducerConsumerCollection<(ClientData, Message)> inQueue, Action messageHandlingProcedure) {