I have an Object List of type Data, which has two attributes: Name (String) and TransactionBlock (Int) Is the Data List SharedWindow However, with each run of the executeSchedule method, it overwrites the item without even using Add in the list. Can someone tell me where the error is?
public partial class MainWindow : Window
{
private int contador = 0;
private Dado dadoAtual = new Dado();
private string[] linhas;
private string linhaAtual;
private int transacaoAtual;
private char operacaoAtual;
private List<Dado> dadosBloqueioCompartilhado= new List<Dado>();
private List<Dado> dadosBloqueioExclusivo = new List<Dado>();
private List<string> dadosTotal = new List<string>();
public MainWindow()
{
InitializeComponent();
}
private void executarSchedule()
{
linhaAtual = linhas[contador];
if (linhaAtual.Equals("00"))
{
txtHistorico.Text = "Fim do schedule" + "\r\n";
return;
}
else
{
transacaoAtual = Convert.ToInt32(linhaAtual.Substring(0, 2));
operacaoAtual = Convert.ToChar(linhaAtual.Substring(2, 1));
if (operacaoAtual == 'C')
{
txtHistorico.Text += "COMMIT(" + transacaoAtual.ToString() + ")" + "\r\n";
if(dadosBloqueioCompartilhado.Count > 0)
foreach(Dado d in dadosBloqueioCompartilhado)
{
if (d.getTransacaoBloqueio() == transacaoAtual)
{
dadosBloqueioCompartilhado.Remove(d);
txtHistorico.Text += "Unlock(" + dadoAtual.getNome() + "," + dadoAtual.getTransacaoBloqueio().ToString() + ")" + "\r\n";
}
if (dadosBloqueioCompartilhado.Count == 0)
break;
}
}
else
{
dadoAtual.setNome(linhaAtual.Substring(3, 1));
dadoAtual.setTransacaoBloqueio(transacaoAtual);
if (!dadosTotal.Contains(dadoAtual.getNome()))
dadosTotal.Add(dadoAtual.getNome());
if(operacaoAtual == 'R')
{
if(dadosBloqueioCompartilhado.Count() == 0)
dadosBloqueioCompartilhado.Add(dadoAtual);
else
{
foreach (Dado d in dadosBloqueioCompartilhado)
{
if (!(d.getNome() == dadoAtual.getNome() && d.getTransacaoBloqueio() == dadoAtual.getTransacaoBloqueio()))
dadosBloqueioCompartilhado.Add(dadoAtual);
}
}
txtHistorico.Text += "Lock-S(" + dadoAtual.getNome() + "," + dadoAtual.getTransacaoBloqueio().ToString() + ")" + "\r\n";
txtHistorico.Text += "Read(" + dadoAtual.getNome() + ")" + "\r\n";
}
else if(operacaoAtual == 'W')
{
}
}
}
contador++;
}