Reputation: 49609
How would you name a class with the following public interface:
/// <summary>
/// Enqeues and exectutes actions synchronously on seperated threads using the <see cref="ThreadPool"/>.
/// </summary>
/// <remarks>
/// Syncronism is guaranteed on a per-instance base in that each enqued action will be executed
/// after the previous action has completed execution for each instance of <see cref="ThreadPoolExectutor" />
/// </remarks>
internal class ThreadPoolExectutor
{
/// <summary>
/// Initializes a new instance of the <see cref="ThreadPoolExectutor"/> class.
/// </summary>
/// <param name="capacity">The absolute (not the initial) number of elements that the <see cref="ThreadPoolExectutor"/> can contain.</param>
public ThreadPoolExectutor(int capacity)
/// <summary>
/// Occurs when exception occured during execution.
/// </summary>
public event EventHandler<ExceptionEventArgs> ExceptionOccurred;
/// <summary>
/// Enqueues a new action with a single parameter for execution on the thread pool.
/// </summary>
/// <param name="action">
/// The action to enqueue for execution.
/// </param>
/// <param name="param">
/// The parameter for the action.
/// </param>
/// <typeparam name="TArg">
/// The type of the <paramref name="param"/>.
/// </typeparam>
public void Execute<TArg>(Action<TArg> action, TArg param)
/// <summary>
/// Enqueues a new action with no parameters for execution on the thread pool.
/// </summary>
/// <param name="action">
/// The action to enqueue for execution.
/// </param>
public void Execute(Action action)
}
Upvotes: 1
Views: 2324
Reputation: 8278
personally id try and refactor the class into 2 smaller ones to follow the Single Responsibility Principal - therefore have a class for Executing actions
ThreadPoolDispatcher [as per the above suggestion that i agree with]
and then a ThreadPoolQueuer
which will be responsible for queuing threads
just personal preference though
Upvotes: 1
Reputation: 60065
Enqeues and exectutes actions
I would call it ThreadPoolDispatcher
Upvotes: 5