/// <inheritdoc /> public BasicVaultReaderThread([NotNull] BasicReadWriteVault <string> vault, [NotNull] IOutputHelper helper, int num, [NotNull] string lookFor) : base(vault, helper, num, lookFor) { }
private protected override WriterThread <BasicReadWriteVault <string> > InitWriterThread( BasicReadWriteVault <string> vault, IOutputHelper outputHelper, char charToWrite, WriterThreadBeginToken beginToken) => new BasicVaultWriterThread(vault, outputHelper, charToWrite, beginToken);
private protected override ReaderThread <BasicReadWriteVault <string> > InitReaderThread( BasicReadWriteVault <string> vault, IOutputHelper outputHelper, int index, string lookFor) => new BasicVaultReaderThread(vault, outputHelper, index, lookFor);
private protected override ArbiterThread <BasicReadWriteVault <string> > InitArbiterThread( BasicReadWriteVault <string> vault, IOutputHelper outputHelper) => new BasicVaultArbiterThread(vault, outputHelper);
/// <inheritdoc /> public BasicVaultWriterThread([NotNull] BasicReadWriteVault <string> vault, [NotNull] IOutputHelper helper, char favoriteChar, WriterThreadBeginToken startToken, int minWrites = DefaultMinWrites, int maxWrites = DefaultMaxWrites) : base(vault, helper, favoriteChar, startToken, minWrites, maxWrites) { }