未验证 提交 a4d877e0 编写于 作者: M Marek Safar 提交者: GitHub

Reverse ctors chaining for few SPC types to avoid calling complex ctors unnecessary (#45239)

上级 eb7837c2
......@@ -69,13 +69,14 @@ public partial class UTF8Encoding : Encoding
private readonly bool _isThrowException;
public UTF8Encoding() : this(false)
public UTF8Encoding() :
base(UTF8_CODEPAGE)
{
}
public UTF8Encoding(bool encoderShouldEmitUTF8Identifier) :
base(UTF8_CODEPAGE)
this()
{
_emitUTF8Identifier = encoderShouldEmitUTF8Identifier;
}
......
......@@ -64,7 +64,6 @@ private TaskScheduler GetDefaultScheduler(Task? currTask)
/// cref="System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
/// </remarks>
public TaskFactory()
: this(default, TaskCreationOptions.None, TaskContinuationOptions.None, null)
{
}
......@@ -85,8 +84,8 @@ public TaskFactory()
/// cref="System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
/// </remarks>
public TaskFactory(CancellationToken cancellationToken)
: this(cancellationToken, TaskCreationOptions.None, TaskContinuationOptions.None, null)
{
m_defaultCancellationToken = cancellationToken;
}
/// <summary>
......@@ -109,8 +108,8 @@ public TaskFactory(CancellationToken cancellationToken)
/// cref="System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
/// </remarks>
public TaskFactory(TaskScheduler? scheduler) // null means to use TaskScheduler.Current
: this(default, TaskCreationOptions.None, TaskContinuationOptions.None, scheduler)
{
m_defaultScheduler = scheduler;
}
/// <summary>
......@@ -140,8 +139,12 @@ public TaskFactory(CancellationToken cancellationToken)
/// cref="System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
/// </remarks>
public TaskFactory(TaskCreationOptions creationOptions, TaskContinuationOptions continuationOptions)
: this(default, creationOptions, continuationOptions, null)
{
TaskFactory.CheckMultiTaskContinuationOptions(continuationOptions);
TaskFactory.CheckCreationOptions(creationOptions);
m_defaultCreationOptions = creationOptions;
m_defaultContinuationOptions = continuationOptions;
}
/// <summary>
......@@ -180,14 +183,10 @@ public TaskFactory(TaskCreationOptions creationOptions, TaskContinuationOptions
/// cref="System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
/// </remarks>
public TaskFactory(CancellationToken cancellationToken, TaskCreationOptions creationOptions, TaskContinuationOptions continuationOptions, TaskScheduler? scheduler)
: this(creationOptions, continuationOptions)
{
TaskFactory.CheckMultiTaskContinuationOptions(continuationOptions);
TaskFactory.CheckCreationOptions(creationOptions);
m_defaultCancellationToken = cancellationToken;
m_defaultScheduler = scheduler;
m_defaultCreationOptions = creationOptions;
m_defaultContinuationOptions = continuationOptions;
}
/* Properties */
......
......@@ -70,7 +70,6 @@ private TaskScheduler GetDefaultScheduler(Task? currTask)
/// cref="System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
/// </remarks>
public TaskFactory()
: this(default, TaskCreationOptions.None, TaskContinuationOptions.None, null)
{
}
......@@ -91,8 +90,8 @@ public TaskFactory()
/// cref="System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
/// </remarks>
public TaskFactory(CancellationToken cancellationToken)
: this(cancellationToken, TaskCreationOptions.None, TaskContinuationOptions.None, null)
{
m_defaultCancellationToken = cancellationToken;
}
/// <summary>
......@@ -115,8 +114,8 @@ public TaskFactory(CancellationToken cancellationToken)
/// cref="System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
/// </remarks>
public TaskFactory(TaskScheduler? scheduler) // null means to use TaskScheduler.Current
: this(default, TaskCreationOptions.None, TaskContinuationOptions.None, scheduler)
{
m_defaultScheduler = scheduler;
}
/// <summary>
......@@ -146,8 +145,12 @@ public TaskFactory(CancellationToken cancellationToken)
/// cref="System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
/// </remarks>
public TaskFactory(TaskCreationOptions creationOptions, TaskContinuationOptions continuationOptions)
: this(default, creationOptions, continuationOptions, null)
{
CheckMultiTaskContinuationOptions(continuationOptions);
CheckCreationOptions(creationOptions);
m_defaultCreationOptions = creationOptions;
m_defaultContinuationOptions = continuationOptions;
}
/// <summary>
......@@ -186,14 +189,10 @@ public TaskFactory(TaskCreationOptions creationOptions, TaskContinuationOptions
/// cref="System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
/// </remarks>
public TaskFactory(CancellationToken cancellationToken, TaskCreationOptions creationOptions, TaskContinuationOptions continuationOptions, TaskScheduler? scheduler)
: this(creationOptions, continuationOptions)
{
CheckMultiTaskContinuationOptions(continuationOptions);
CheckCreationOptions(creationOptions);
m_defaultCancellationToken = cancellationToken;
m_defaultScheduler = scheduler;
m_defaultCreationOptions = creationOptions;
m_defaultContinuationOptions = continuationOptions;
}
internal static void CheckCreationOptions(TaskCreationOptions creationOptions)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册