Creates a new {@code SubjectRunnable} that, when executed, will perform thread state
{@link ThreadState#bind binding} and guaranteed {@link ThreadState#restore restoration} before and after the
{@link Runnable Runnable}'s execution, respectively.
@param threadState the thread state to bind and unbind before and after the runnable's execution.
@param dg the delegate {@code Runnable} to execute when this instance is {@link #run() run()}.
@throws IllegalArgumentException if either the {@code ThreadState} or {@link Runnable} arguments are {@code null}.
Creates a new {@code SubjectRunnable} that, when executed, will perform thread state {@link ThreadState#bind binding} and guaranteed {@link ThreadState#restore restoration} before and after the {@link Runnable Runnable}'s execution, respectively.
@param threadState the thread state to bind and unbind before and after the runnable's execution. @param dg the delegate {@code Runnable} to execute when this instance is {@link #run() run()}. @throws IllegalArgumentException if either the {@code ThreadState} or {@link Runnable} arguments are {@code null}.