📄 concrt.h
字号:
/// <summary>
/// Constructs an <c>improper_scheduler_detach</c> object.
/// </summary>
/**/
_CRTIMP improper_scheduler_detach() throw();
};
/// <summary>
/// This class describes an exception that is thrown whenever the <c>Reference</c> method is called on a <c>Scheduler</c>
/// object that is shutting down, from a context that is not part of that scheduler.
/// </summary>
/// <seealso cref="Scheduler Class"/>
/// <seealso cref="Scheduler::Reference Method"/>
/**/
class improper_scheduler_reference : public std::exception
{
public:
/// <summary>
/// Constructs an <c>improper_scheduler_reference</c> object.
/// </summary>
/// <param name="_Message">
/// A descriptive message of the error.
/// </param>
/**/
explicit _CRTIMP improper_scheduler_reference(const char* _Message) throw();
/// <summary>
/// Constructs an <c>improper_scheduler_reference</c> object.
/// </summary>
/**/
_CRTIMP improper_scheduler_reference() throw();
};
/// <summary>
/// This class describes an exception that is thrown whenever the <c>Scheduler::SetDefaultSchedulerPolicy</c> method is
/// called when a default scheduler already exists within the process.
/// </summary>
/// <seealso cref="Scheduler::SetDefaultSchedulerPolicy Method"/>
/**/
class default_scheduler_exists : public std::exception
{
public:
/// <summary>
/// Constructs a <c>default_scheduler_exists</c> object.
/// </summary>
/// <param name="_Message">
/// A descriptive message of the error.
/// </param>
/**/
explicit _CRTIMP default_scheduler_exists(const char * _Message) throw();
/// <summary>
/// Constructs a <c>default_scheduler_exists</c> object.
/// </summary>
/**/
_CRTIMP default_scheduler_exists() throw();
};
/// <summary>
/// This class describes an exception that is thrown whenever calls to the <c>Block</c> and <c>Unblock</c> methods of a
/// <c>Context</c> object are not properly paired.
/// </summary>
/// <remarks>
/// Calls to the <c>Block</c> and <c>Unblock</c> methods of a <c>Context</c> object must always be properly paired.
/// The Concurrency Runtime allows the operations to happen in either order. For example, a call to <c>Block</c>
/// may followed by a call to <c>Unblock</c>, or vice-versa. This exception would be thrown if, for instance, two calls to the
/// <c>Unblock</c> method were made in a row, on a <c>Context</c> object which was not blocked.
/// </remarks>
/// <seealso cref="Context Class"/>
/// <seealso cref="Context::Unblock Method"/>
/// <seealso cref="Context::Block Method"/>
/**/
class context_unblock_unbalanced : public std::exception
{
public:
/// <summary>
/// Constructs a <c>context_unblock_unbalanced</c> object.
/// </summary>
/// <param name="_Message">
/// A descriptive message of the error.
/// </param>
/**/
explicit _CRTIMP context_unblock_unbalanced(const char * _Message) throw();
/// <summary>
/// Constructs a <c>context_unblock_unbalanced</c> object.
/// </summary>
/**/
_CRTIMP context_unblock_unbalanced() throw();
};
/// <summary>
/// This class describes an exception that is thrown whenever the <c>Unblock</c> method of a <c>Context</c> object is called
/// from the same context. This would indicate an attempt by a given context to unblock itself.
/// </summary>
/// <seealso cref="Context Class"/>
/// <seealso cref="Context::Unblock Method"/>
/**/
class context_self_unblock : public std::exception
{
public:
/// <summary>
/// Constructs a <c>context_self_unblock</c> object.
/// </summary>
/// <param name="_Message">
/// A descriptive message of the error.
/// </param>
/**/
explicit _CRTIMP context_self_unblock(const char * _Message) throw();
/// <summary>
/// Constructs a <c>context_self_unblock</c> object.
/// </summary>
/**/
_CRTIMP context_self_unblock() throw();
};
/// <summary>
/// This class describes an exception that is thrown whenever there are tasks still scheduled to a <c>task_group</c> or
/// <c>structured_task_group</c> object at the time that object's destructor executes. This exception will never be thrown
/// if the destructor is reached due to stack unwinding as the result of an exception.
/// </summary>
/// <remarks>
/// Absent exception flow, you are responsible for calling either the <c>wait</c> or <c>run_and_wait</c> method of a <c>task_group</c> or
/// <c>structured_task_group</c> object before allowing that object to destruct. The runtime throws this exception as an
/// indication that you forgot to call the <c>wait</c> or <c>run_and_wait</c> method.
/// </remarks>
/// <seealso cref="task_group Class"/>
/// <seealso cref="task_group::wait Method"/>
/// <seealso cref="task_group::run_and_wait Method"/>
/// <seealso cref="structured_task_group Class"/>
/// <seealso cref="structured_task_group::wait Method"/>
/// <seealso cref="structured_task_group::run_and_wait Method"/>
/**/
class missing_wait : public std::exception
{
public:
/// <summary>
/// Constructs a <c>missing_wait</c> object.
/// </summary>
/// <param name="_Message">
/// A descriptive message of the error.
/// </param>
/**/
explicit _CRTIMP missing_wait(const char * _Message) throw();
/// <summary>
/// Constructs a <c>missing_wait</c> object.
/// </summary>
/**/
_CRTIMP missing_wait() throw();
};
/// <summary>
/// This class describes an exception that is thrown whenever a messaging block is given a pointer to a target which is
/// invalid for the operation being performed.
/// </summary>
/// <remarks>
/// This exception is typically thrown for reasons such as a target attempting to consume a message which is reserved
/// for a different target or releasing a reservation that it does not hold.
/// </remarks>
/// <seealso cref="Asynchronous Message Blocks"/>
/**/
class bad_target : public std::exception
{
public:
/// <summary>
/// Constructs a <c>bad_target</c> object.
/// </summary>
/// <param name="_Message">
/// A descriptive message of the error.
/// </param>
/**/
explicit _CRTIMP bad_target(const char * _Message) throw();
/// <summary>
/// Constructs a <c>bad_target</c> object.
/// </summary>
/**/
_CRTIMP bad_target() throw();
};
/// <summary>
/// This class describes an exception that is thrown whenever a messaging block is unable to find a requested message.
/// </summary>
/// <seealso cref="Asynchronous Message Blocks"/>
/**/
class message_not_found : public std::exception
{
public:
/// <summary>
/// Constructs a <c>message_not_found</c> object.
/// </summary>
/// <param name="_Message">
/// A descriptive message of the error.
/// </param>
/**/
explicit _CRTIMP message_not_found(const char * _Message) throw();
/// <summary>
/// Constructs a <c>message_not_found</c> object.
/// </summary>
/**/
_CRTIMP message_not_found() throw();
};
/// <summary>
/// This class describes an exception that is thrown whenever the <c>link_target</c> method of a messaging block is
/// called and the messaging block is unable to link to the target. This may be the result of exceeding the number of
/// links the messaging block is allowed or attempting to link a specific target twice to the same source.
/// </summary>
/// <seealso cref="Asynchronous Message Blocks"/>
/**/
class invalid_link_target : public std::exception
{
public:
/// <summary>
/// Constructs an <c>invalid_link_target</c> object.
/// </summary>
/// <param name="_Message">
/// A descriptive message of the error.
/// </param>
/**/
explicit _CRTIMP invalid_link_target(const char * _Message) throw();
/// <summary>
/// Constructs an <c>invalid_link_target</c> object.
/// </summary>
/**/
_CRTIMP invalid_link_target() throw();
};
/// <summary>
/// This class describes an exception that is thrown whenever an invalid or unknown key is passed to a <c>SchedulerPolicy</c>
/// object constructor, or the <c>SetPolicyValue</c> method of a <c>SchedulerPolicy</c> object is passed a key that must
/// be changed via other means such as the <c>SetConcurrencyLimits</c> method.
/// </summary>
/// <seealso cref="SchedulerPolicy Class"/>
/// <seealso cref="PolicyElementKey Enumeration"/>
/// <seealso cref="SchedulerPolicy::SetPolicyValue Method"/>
/// <seealso cref="SchedulerPolicy::SetConcurrencyLimits Method"/>
/**/
class invalid_scheduler_policy_key : public std::exception
{
public:
/// <summary>
/// Constructs an <c>invalid_scheduler_policy_key</c> object.
/// </summary>
/// <param name="_Message">
/// A descriptive message of the error.
/// </param>
/**/
explicit _CRTIMP invalid_scheduler_policy_key(const char * _Message) throw();
/// <summary>
/// Constructs an <c>invalid_scheduler_policy_key</c> object.
/// </summary>
/**/
_CRTIMP invalid_scheduler_policy_key() throw();
};
/// <summary>
/// This class describes an exception that is thrown whenever a policy key of a <c>SchedulerPolicy</c> object is
/// set to an invalid value for that key.
/// </summary>
/// <seealso cref="SchedulerPolicy Class"/>
/// <seealso cref="PolicyElementKey Enumeration"/>
/// <seealso cref="SchedulerPolicy::SetPolicyValue Method"/>
/// <seealso cref="SchedulerPolicy::SetConcurrencyLimits Method"/>
/**/
class invalid_scheduler_policy_value : public std::exception
{
public:
/// <summary>
/// Constructs an <c>invalid_scheduler_policy_value</c> object.
/// </summary>
/// <param name="_Message">
/// A descriptive message of the error.
/// </param>
/**/
explicit _CRTIMP invalid_scheduler_policy_value(const char * _Message) throw();
/// <summary>
/// Constructs an <c>invalid_scheduler_policy_value</c> object.
/// </summary>
/**/
_CRTIMP invalid_scheduler_policy_value() throw();
};
/// <summary>
/// This class describes an exception that is thrown whenever an attempt is made to set the concurrency limits of a
/// <c>SchedulerPolicy</c> object such that the value of the <c>MinConcurrency</c> key is less than the value of the
/// <c>MaxConcurrency</c> key.
/// </summary>
/// <seealso cref="SchedulerPolicy Class"/>
/// <seealso cref="PolicyElementKey Enumeration"/>
/// <seealso cref="SchedulerPolicy::SetConcurrencyLimits Method"/>
/**/
class invalid_scheduler_policy_thread_specification : public std::exception
{
public:
/// <summary>
/// Constructs an <c>invalid_scheduler_policy_value</c> object.
/// </summary>
/// <param name="_Message">
/// A descriptive message of the error.
/// </param>
/**/
explicit _CRTIMP invalid_scheduler_policy_thread_specification(const char * _Message) throw();
/// <summary>
/// Constructs an <c>invalid_scheduler_policy_value</c> object.
/// </summary>
/**/
_CRTIMP invalid_scheduler_policy_thread_specification() throw();
};
/// <summary>
/// This class describes an exception that is thrown when an invalid operation is performed that is not more accurately
/// described by another exception type thrown by the Concurrency Runtime.
/// </summary>
/// <remarks>
/// The various methods which throw this exception will generally document under what circumstances they will throw it.
/// </remarks>
/**/
class invalid_operation : public std::exception
{
public:
/// <summary>
/// Constructs an <c>invalid_operation</c> object.
/// </summary>
/// <param name="_Message">
/// A descriptive message of the error.
/// </param>
/**/
explicit _CRTIMP invalid_operation(const char * _Message) throw();
/// <summary>
/// Constructs an <c>invalid_operation</c> object.
/// </summary>
/**/
_CRTIMP invalid_operation() throw();
};
/// <summary>
/// This class describes an exception that is thrown when the Concurrency Runtime detects that you neglected to call the
/// <c>CurrentScheduler::Detach</c> method on a context that attached to a second scheduler via the <c>Attach</c> method
/// of the <c>Scheduler</c> object.
/// </summary>
/// <remarks>
/// This exception is only thrown when you nest one scheduler inside another by calling the <c>Attach</c> method of a
/// <c>Scheduler</c> object on a context that is already owned by or attached to another scheduler. The Concurrency Runtime
/// throws this exception opportunistically when it can detect the scenario as an aid to locating the problem. Not every
/// instance of neglecting to call the <c>CurrentScheduler::Detach</c> method is guaranteed to throw this exception.
/// </remarks>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -