Question

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)
}
Was it helpful?

Solution

Enqeues and exectutes actions

I would call it ThreadPoolDispatcher

OTHER TIPS

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

How about ThreadPoolAgent.

I would name it ThreadPoolManager

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top