Skip to content

Commit 38c6edb

Browse files
committed
Added missing code comments. ThreadHelpers.ExtendedMaxStackSize renamed to DefaultExtendedMaxStackSize. ThreadHelpers.DefaultSleepTimeout renamed to DefaultSleepInterval. ThreadHelpers.SyncInvokeWithExtendedStack renamed to InvokeWithModifiedMaxStackSize and InvokeWithExtendedMaxStackSize methods.
1 parent aa05683 commit 38c6edb

File tree

3 files changed

+120
-16
lines changed

3 files changed

+120
-16
lines changed

ConcurrentQueueExtensions.cs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,20 @@
33
using System.Threading.Tasks;
44
using Platform.Collections.Concurrent;
55

6-
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
7-
86
namespace Platform.Threading
97
{
8+
/// <summary>
9+
/// <para>Provides a set of extension methods for <see cref="ConcurrentQueue{T}"/> objects.</para>
10+
/// <para>Предоставляет набор методов расширения для объектов <see cref="ConcurrentQueue{T}"/>.</para>
11+
/// </summary>
1012
public static class ConcurrentQueueExtensions
1113
{
14+
/// <summary>
15+
/// <para>Suspends evaluation of the method until all asynchronous operations in the queue finish.</para>
16+
/// <para>Приостановляет выполнение метода до завершения всех асинхронных операций в очереди.</para>
17+
/// </summary>
18+
/// <param name="queue"><para>The queue of asynchronous operations.</para><para>Очередь асинхронных операций.</para></param>
19+
/// <returns><para>An asynchronous operation representation.</para><para>Представление асинхронной операции.</para></returns>
1220
public static async Task AwaitAll(this ConcurrentQueue<Task> queue)
1321
{
1422
foreach (var item in queue.DequeueAll())
@@ -17,6 +25,12 @@ public static async Task AwaitAll(this ConcurrentQueue<Task> queue)
1725
}
1826
}
1927

28+
/// <summary>
29+
/// <para>Suspends evaluation of the method until the first asynchronous operation in the queue finishes.</para>
30+
/// <para>Приостанавливает выполнение метода до завершения первой асинхронной операции в очереди.</para>
31+
/// </summary>
32+
/// <param name="queue"><para>The queue of asynchronous operations.</para><para>Очередь асинхронных операций.</para></param>
33+
/// <returns><para>An asynchronous operation representation.</para><para>Представление асинхронной операции.</para></returns>
2034
public static async Task AwaitOne(this ConcurrentQueue<Task> queue)
2135
{
2236
if (queue.TryDequeue(out Task item))
@@ -25,6 +39,12 @@ public static async Task AwaitOne(this ConcurrentQueue<Task> queue)
2539
}
2640
}
2741

42+
/// <summary>
43+
/// <para>Adds an <see cref="Action"/> as runned <see cref="Task"/> to the end of the <see cref="ConcurrentQueue{T}"/>.</para>
44+
/// <para>Добавляет <see cref="Action"/> как запущенную <see cref="Task"/> в конец <see cref="ConcurrentQueue{T}"/>.</para>
45+
/// </summary>
46+
/// <param name="queue"><para>The queue of asynchronous operations.</para><para>Очередь асинхронных операций.</para></param>
47+
/// <param name="action"><para>The <see cref="Action"/> delegate.</para><para>Делагат <see cref="Action"/>.</para></param>
2848
public static void EnqueueAsRunnedTask(this ConcurrentQueue<Task> queue, Action action) => queue.Enqueue(Task.Run(action));
2949
}
3050
}

TaskExtensions.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,20 @@
11
using System.Threading.Tasks;
22

3-
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
4-
53
namespace Platform.Threading
64
{
5+
/// <summary>
6+
/// <para>Provides a set of extension methods for <see cref="Task{TReturn}"/> objects.</para>
7+
/// <para>Предоставляет набор методов расширения для объектов <see cref="Task{TReturn}"/>.</para>
8+
/// </summary>
79
public static class TaskExtensions
810
{
9-
public static T AwaitResult<T>(this Task<T> task) => task.GetAwaiter().GetResult();
11+
/// <summary>
12+
/// <para>Waits for completion of the asynchronous <see cref="Task{TReturn}"/> and returns its result.</para>
13+
/// <para>Ожидает завершения асинхронной <see cref="Task{TReturn}"/> и возвращает её результат.</para>
14+
/// </summary>
15+
/// <typeparam name="TReturn"><para>The return value type.</para><para>Тип возвращаемого значения.</para></typeparam>
16+
/// <param name="task"><para>The asynchronous <see cref="Task{TReturn}"/>.</para><para>Ассинхронная <see cref="Task{TReturn}"/>.</para></param>
17+
/// <returns><para>The result of completed <see cref="Task{TReturn}"/>.</para><para>Результат завершённой <see cref="Task{TReturn}"/>.</para></returns>
18+
public static TReturn AwaitResult<TReturn>(this Task<TReturn> task) => task.GetAwaiter().GetResult();
1019
}
1120
}

ThreadHelpers.cs

Lines changed: 86 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,117 @@
11
using System;
22
using System.Threading;
33

4-
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
5-
64
namespace Platform.Threading
75
{
6+
/// <summary>
7+
/// <para>Provides a set of helper methods for <see cref="Thread"/> objects.</para>
8+
/// <para>Предоставляет набор вспомогательных методов для объектов <see cref="Thread"/>.</para>
9+
/// </summary>
810
public static class ThreadHelpers
911
{
12+
/// <summary>
13+
/// <para>Gets the maximum stack size in bytes by default.</para>
14+
/// <para>Возвращает размер максимальный стека в байтах по умолчанию.</para>
15+
/// </summary>
1016
public static readonly int DefaultMaxStackSize;
11-
public static readonly int ExtendedMaxStackSize = 200 * 1024 * 1024;
12-
public static readonly int DefaultSleepTimeout = 1;
1317

14-
public static void SyncInvokeWithExtendedStack<T>(T param, Action<object> action) => SyncInvokeWithExtendedStack(param, action, ExtendedMaxStackSize);
18+
/// <summary>
19+
/// <para>Gets the extended maximum stack size in bytes by default.</para>
20+
/// <para>Возвращает расширенный максимальный размер стека в байтах по умолчанию.</para>
21+
/// </summary>
22+
public static readonly int DefaultExtendedMaxStackSize = 200 * 1024 * 1024;
1523

16-
public static void SyncInvokeWithExtendedStack<T>(T param, Action<object> action, int maxStackSize) => StartNew(param, action, maxStackSize).Join();
24+
/// <summary>
25+
/// <para>Returns the default time interval for transferring control to other threads in milliseconds</para>
26+
/// <para>Возвращает интервал времени для передачи управления другим потокам в миллисекундах по умолчанию.</para>
27+
/// </summary>
28+
public static readonly int DefaultSleepInterval = 1;
1729

18-
public static void SyncInvokeWithExtendedStack(Action action) => SyncInvokeWithExtendedStack(action, ExtendedMaxStackSize);
30+
/// <summary>
31+
/// <para>Invokes the <see cref="Action{T}"/> with modified maximum stack size.</para>
32+
/// <para>Вызывает <see cref="Action{T}"/> с изменённым максимальным размером стека.</para>
33+
/// </summary>
34+
/// <typeparam name="T"><para>The type of the <see cref="Action{T}"/> argument.</para><para>Тип аргумента <see cref="Action{T}"/>.</para></typeparam>
35+
/// <param name="param"><para>The object containing data to be used by the invoked <see cref="Action{T}"/> delegate.</para><para>Объект, содержащий данные, которые будут использоваться вызваемым делегатом <see cref="Action{T}"/>.</para></param>
36+
/// <param name="action"><para>The <see cref="Action{T}"/> delegate.</para><para>Делагат <see cref="Action{T}"/>.</para></param>
37+
/// <param name="maxStackSize"><para>The maximum stack size in bytes.</para><para>Максимальный размер стека в байтах.</para></param>
38+
public static void InvokeWithModifiedMaxStackSize<T>(T param, Action<object> action, int maxStackSize) => StartNew(param, action, maxStackSize).Join();
1939

20-
public static void SyncInvokeWithExtendedStack(Action action, int maxStackSize) => StartNew(action, maxStackSize).Join();
40+
/// <summary>
41+
/// <para>Invokes the <see cref="Action{T}"/> with extend maximum stack size.</para>
42+
/// <para>Вызывает <see cref="Action{T}"/> с расширенным максимальным размером стека.</para>
43+
/// </summary>
44+
/// <typeparam name="T"><para>The type of the <see cref="Action{T}"/> argument.</para><para>Тип аргумента <see cref="Action{T}"/>.</para></typeparam>
45+
/// <param name="param"><para>The object containing data to be used by the invoked <see cref="Action{T}"/> delegate.</para><para>Объект, содержащий данные, которые будут использоваться вызваемым делегатом <see cref="Action{T}"/>.</para></param>
46+
/// <param name="action"><para>The <see cref="Action{T}"/> delegate.</para><para>Делагат <see cref="Action{T}"/>.</para></param>
47+
public static void InvokeWithExtendedMaxStackSize<T>(T param, Action<object> action) => InvokeWithModifiedMaxStackSize(param, action, DefaultExtendedMaxStackSize);
2148

22-
public static Thread StartNew<T>(T param, Action<object> action) => StartNew(param, action, DefaultMaxStackSize);
49+
/// <summary>
50+
/// <para>Invokes the <see cref="Action"/> with modified maximum stack size.</para>
51+
/// <para>Вызывает <see cref="Action"/> с изменённым максимальным размером стека.</para>
52+
/// </summary>
53+
/// <param name="action"><para>The <see cref="Action"/> delegate.</para><para>Делагат <see cref="Action"/>.</para></param>
54+
/// <param name="maxStackSize"><para>The maximum stack size in bytes.</para><para>Максимальный размер стека в байтах.</para></param>
55+
public static void InvokeWithModifiedMaxStackSize(Action action, int maxStackSize) => StartNew(action, maxStackSize).Join();
2356

57+
/// <summary>
58+
/// <para>Invokes the <see cref="Action"/> with extend maximum stack size.</para>
59+
/// <para>Вызывает <see cref="Action"/> с расширенным максимальным размером стека.</para>
60+
/// </summary>
61+
/// <param name="action"><para>The <see cref="Action"/> delegate.</para><para>Делагат <see cref="Action"/>.</para></param>
62+
public static void InvokeWithExtendedMaxStackSize(Action action) => InvokeWithModifiedMaxStackSize(action, DefaultExtendedMaxStackSize);
63+
64+
/// <summary>
65+
/// <para>Initializes a new instance of the <see cref="Thread"/> class, causes the operating system to change the state of that instance to <see cref="ThreadState.Running"/> and supplies an object containing data to be used by the method that thread executes.</para>
66+
/// <para>Инициализирует новый экземпляр класса <see cref="Thread"/>, просит операционную систему изменить состояние этого экземпляра на <see cref="ThreadState.Running"/> и предоставляет объект, содержащий данные, которые будут использоваться в методе, который выполняет этот поток.</para>
67+
/// </summary>
68+
/// <typeparam name="T"><para>The type of the <see cref="Action{T}"/> argument.</para><para>Тип аргумента <see cref="Action{T}"/>.</para></typeparam>
69+
/// <param name="param"><para>The object containing data to be used by the method that thread executes.</para><para>Объект, содержащий данные, которые будут использоваться методом, выполняемым потоком.</para></param>
70+
/// <param name="action"><para>The <see cref="Action{T}"/> delegate.</para><para>Делагат <see cref="Action{T}"/>.</para></param>
71+
/// <param name="maxStackSize"><para>The maximum stack size in bytes.</para><para>Максимальный размер стека в байтах.</para></param>
72+
/// <returns><para>A new started <see cref="Thread"/> instance.</para><para>Новый запущенный экземпляр <see cref="Thread"/>.</para></returns>
2473
public static Thread StartNew<T>(T param, Action<object> action, int maxStackSize)
2574
{
2675
var thread = new Thread(new ParameterizedThreadStart(action), maxStackSize);
2776
thread.Start(param);
2877
return thread;
2978
}
3079

31-
public static Thread StartNew(Action action) => StartNew(action, DefaultMaxStackSize);
80+
/// <summary>
81+
/// <para>Initializes a new instance of the <see cref="Thread"/> class, causes the operating system to change the state of that instance to <see cref="ThreadState.Running"/> and supplies an object containing data to be used by the method that thread executes.</para>
82+
/// <para>Инициализирует новый экземпляр класса <see cref="Thread"/>, просит операционную систему изменить состояние этого экземпляра на <see cref="ThreadState.Running"/> и предоставляет объект, содержащий данные, которые будут использоваться в методе, который выполняет этот поток.</para>
83+
/// </summary>
84+
/// <typeparam name="T"><para>The type of the <see cref="Action{T}"/> argument.</para><para>Тип аргумента <see cref="Action{T}"/>.</para></typeparam>
85+
/// <param name="param"><para>The object containing data to be used by the method that thread executes.</para><para>Объект, содержащий данные, которые будут использоваться методом, выполняемым потоком.</para></param>
86+
/// <param name="action"><para>The <see cref="Action{T}"/> delegate.</para><para>Делагат <see cref="Action{T}"/>.</para></param>
87+
/// <returns><para>A new started <see cref="Thread"/> instance.</para><para>Новый запущенный экземпляр <see cref="Thread"/>.</para></returns>
88+
public static Thread StartNew<T>(T param, Action<object> action) => StartNew(param, action, DefaultMaxStackSize);
3289

90+
/// <summary>
91+
/// <para>Initializes a new instance of the <see cref="Thread"/> class, causes the operating system to change the state of that instance to <see cref="ThreadState.Running"/> and supplies the method executed by that thread.</para>
92+
/// <para>Инициализирует новый экземпляр класса <see cref="Thread"/>, просит операционную систему изменить состояние этого экземпляра на <see cref="ThreadState.Running"/> и предоставляет метод, который выполняется этим потоком.</para>
93+
/// </summary>
94+
/// <param name="action"><para>The <see cref="Action"/> delegate.</para><para>Делагат <see cref="Action"/>.</para></param>
95+
/// <param name="maxStackSize"><para>The maximum stack size in bytes.</para><para>Максимальный размер стека в байтах.</para></param>
96+
/// <returns><para>A new started <see cref="Thread"/> instance.</para><para>Новый запущенный экземпляр <see cref="Thread"/>.</para></returns>
3397
public static Thread StartNew(Action action, int maxStackSize)
3498
{
3599
var thread = new Thread(new ThreadStart(action), maxStackSize);
36100
thread.Start();
37101
return thread;
38102
}
39103

40-
public static void Sleep() => Thread.Sleep(DefaultSleepTimeout);
104+
/// <summary>
105+
/// <para>Initializes a new instance of the <see cref="Thread"/> class, causes the operating system to change the state of that instance to <see cref="ThreadState.Running"/> and supplies the method executed by that thread.</para>
106+
/// <para>Инициализирует новый экземпляр класса <see cref="Thread"/>, просит операционную систему изменить состояние этого экземпляра на <see cref="ThreadState.Running"/> и предоставляет метод, который выполняется этим потоком.</para>
107+
/// </summary>
108+
/// <param name="action"><para>The <see cref="Action"/> delegate.</para><para>Делагат <see cref="Action"/>.</para></param>
109+
/// <returns><para>A new started <see cref="Thread"/> instance.</para><para>Новый запущенный экземпляр <see cref="Thread"/>.</para></returns>
110+
public static Thread StartNew(Action action) => StartNew(action, DefaultMaxStackSize);
111+
112+
/// <summary>
113+
/// Suspends the current thread for the <see cref="DefaultSleepInterval"/>.
114+
/// </summary>
115+
public static void Sleep() => Thread.Sleep(DefaultSleepInterval);
41116
}
42117
}

0 commit comments

Comments
 (0)