public async Task <byte[]> Encode(byte[] message) { var m = (byte[])message.Clone(); var c = new List <byte>(); byte[] prev = _c0; for (int i = 0; i < message.Length; i += _algorithm.Size) { await Task.Run(() => c.AddRange(_algorithm.EncodeBlock(prev))); prev = c.Skip(i).Take(_algorithm.Size).ToArray(); for (int j = 0; j < _algorithm.Size; j++) { c[i + j] ^= m[i + j]; } form.progressBar.Value = (int)(i / (float)message.Length * 100); } return(c.ToArray()); }
public async Task <byte[]> Encode(byte[] message) { var c = new List <byte>(); for (int i = 0; i < message.Length; i += _algorithm.Size) { await Task.Run(() => c.AddRange(_algorithm.EncodeBlock(message.Skip(i).Take(_algorithm.Size).ToArray()))); if (Thread.CurrentThread.ManagedThreadId == form.ThreadId) { form.progressBar.Value = (int)(i / (float)message.Length * 100); } } return(c.ToArray()); }