public IEnumerable <ProcessedResult> Process(IEnumerable <SmartTransaction> txs)
        {
            var rets = new List <ProcessedResult>();

            lock (Lock)
            {
                try
                {
                    QueuedTxCount = txs.Count();
                    foreach (var tx in txs)
                    {
                        rets.Add(ProcessNoLock(tx));
                        QueuedProcessedTxCount++;
                    }
                }
                finally
                {
                    QueuedTxCount          = 0;
                    QueuedProcessedTxCount = 0;
                }
            }

            foreach (var ret in rets.Where(x => x.IsNews))
            {
                WalletRelevantTransactionProcessed?.Invoke(this, ret);
            }

            return(rets);
        }
예제 #2
0
		public ProcessedResult Process(SmartTransaction tx)
		{
			ProcessedResult ret;
			lock (Lock)
			{
				try
				{
					QueuedTxCount = 1;
					ret = ProcessNoLock(tx);
				}
				finally
				{
					QueuedTxCount = 0;
				}
			}
			if (ret.IsNews)
			{
				WalletRelevantTransactionProcessed?.Invoke(this, ret);
			}
			return ret;
		}