Ejemplo n.º 1
0
        /// <summary>
        /// Init this task
        /// </summary>
        private void GenerateAction()
        {
            byte[] buffer;
            int    blockNumber;

            lock (Instance)
                buffer = Source.GetPortionData(out blockNumber);

            Action calcHashFunc = () =>
            {
                int    blockNum = blockNumber;
                byte[] block    = buffer;

                using (var sha256 = SHA256.Create())
                {
                    var hashedBytes = sha256.ComputeHash(block);

                    var hash = BitConverter.ToString(hashedBytes).Replace("-", string.Empty).ToLower();

                    string res = $"{blockNum} ->{block.Length} ->{Thread.CurrentThread.ManagedThreadId} ->{hash}";

                    Result = TaskWriteObjectToFile.GetInstance(StringSource.GetInstance(res));
                    ActionCompleted?.Invoke(this);
                }
            };

            ActionToRun = calcHashFunc;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creator of instance TaskWriteObjectToFile
        /// </summary>
        /// <param name="source">String source</param>
        /// <returns>Instance of TaskWriteObjectToFile</returns>
        public static TaskWriteObjectToFile GetInstance(ISource source)
        {
            TaskWriteObjectToFile taskWriteToFile = new TaskWriteObjectToFile {
                _source = source
            };

            taskWriteToFile.GenerateAction();
            return(taskWriteToFile);
        }