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); }
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; }