// TODO convert to multithreaded usage private IEnumerable <string> GenerateRandomStrings(IStringRequest stringRequest, CancellationToken cancellationToken) { var strings = new Queue <string>(1000); for (var bi = BigInteger.Zero; bi < stringRequest.Iterations; bi++) { cancellationToken.ThrowIfCancellationRequested(); strings.Enqueue(GenerateRandomString(stringRequest.StringLength, characterList.Value.Length)); } return(strings); }
/// <summary> /// Generates <paramref name="numberOfIterations"/> of random string(s) of /// <paramref name="stringLength"/>. /// </summary> /// <param name="numberOfIterations">The number of strings to generate.</param> /// <param name="stringLength">The length of the string to generate.</param> /// <returns></returns> public async Task <IStringResult> GenerateAsync(IStringRequest stringRequest, CancellationToken cancellationToken) { var startTime = DateTime.Now; var strings = await Task.Run(() => GenerateRandomStrings(stringRequest, cancellationToken)); var endTime = DateTime.Now; var duration = endTime - startTime; var result = new StringResult(stringRequest, strings, duration); return(result); }
public bool AskFolder(IStringRequest request) { var dialog = new System.Windows.Forms.FolderBrowserDialog(); var result = dialog.ShowDialog(); if (result == System.Windows.Forms.DialogResult.OK) { request.Input = dialog.SelectedPath; return(true); } return(false); }
private IStringResult GenerateInternal(IStringRequest stringRequest, CancellationToken cancellationToken) { characterList = new Lazy <char[]>(stringRequest.ToCharArray()); var startTime = DateTime.Now; var strings = GenerateRandomStrings(stringRequest, cancellationToken); var endTime = DateTime.Now; var duration = endTime - startTime; var result = new StringResult(stringRequest, strings, duration); return(result); }
/// <summary> /// Generates <paramref name="numberOfIterations"/> of random string(s) of /// <paramref name="stringLength"/>. /// </summary> /// <param name="stringRequest">The request holding information about how to generate strings.</param> /// <param name="cancellationToken"></param> /// <returns>A <see cref="IStringResult"/> as a result.</returns> public IStringResult Generate(IStringRequest stringRequest, CancellationToken cancellationToken) { return(GenerateInternal(stringRequest, cancellationToken)); }