예제 #1
0
        /// <summary>
        /// Constructor of RNA processor.
        /// </summary>
        /// <param name="rnaStream">Stream with RNA.</param>
        public RnaRunner(Stream rnaStream)
        {
            if (rnaStream.CanSeek)
                rnaStream.Seek(0, SeekOrigin.Begin);

            _sourceRna = new StreamReader(rnaStream).ReadToEnd();

            _state = RnaRunnerState.Stoped;
        }
예제 #2
0
        /// <summary>
        /// Start processing.
        /// </summary>
        public void Start()
        {
            lock (_stateMutex)
            {
                if (_state == RnaRunnerState.Running)
                    return;

                _state = RnaRunnerState.Running;
            }

            var thread = new Thread(ProcessRna)
                             {
                                 IsBackground = true
                             };

            _currentIndexOfRna = 0;
            _bitmaps = new List<PixelMap>();
            _position = new Point(0, 0);
            _mark = new Point(0, 0);
            _direction = Direction.E;
            _bucketColor = new List<Color>();
            _bucketAlpha = new List<byte>();
            _bitmaps.Add(CreateTransperentBitmap());

            EvaluateCurrentColor();

            thread.Start();
        }