C sharp - Como hacer la consulta en hilos

 
Vista:

Como hacer la consulta en hilos

Publicado por harold vasquez (1 intervención) el 27/11/2014 02:59:47
hola a todos

tengo este codigo de un turnero y me piden hacer la consulta en hilos en lo que me puedan ayudar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
namespace parcial
{
    public partial class Turnero : Form
    {
        public Turnero()
        {
            InitializeComponent();
            Load += Turnero_Load;
        }
 
       public enum Tipo_
	{
		Ninguno = 0,
		libranza = 1,
		Hipoteca = 2,
		Ahorro = 3,
		Cartera = 4
	}
 
	Turno libranza = new Turno();
	Turno Hipoteca = new Turno();
	Turno Ahorro = new Turno();
	Turno Cartera = new Turno();
	Dictionary<string, Turno> dic_Tipos_Asesor1 = new Dictionary<string, Turno>();
	Dictionary<string, Turno> dic_Tipos_Asesor2 = new Dictionary<string, Turno>();
	Dictionary<string, Turno> dic_Tipos_Asesor3 = new Dictionary<string, Turno>();
 
	Dictionary<System.DateTime, Tipo_> Tiempos = new Dictionary<System.DateTime, Tipo_>();
 
 
    private void Turnero_Load(object sender, EventArgs e)
	{
		libranza.Tipo = Tipo_.libranza;
		Hipoteca.Tipo = Tipo_.Hipoteca;
		Ahorro.Tipo = Tipo_.Ahorro;
		Cartera.Tipo = Tipo_.Cartera;
 
		dic_Tipos_Asesor1.Add("Libranza", libranza);
		dic_Tipos_Asesor1.Add("Hipoteca", Hipoteca);
 
		dic_Tipos_Asesor2.Add("Hipoteca", Hipoteca);
		dic_Tipos_Asesor2.Add("Ahorro", Ahorro);
 
		dic_Tipos_Asesor3.Add("Cartera", Cartera);
		dic_Tipos_Asesor3.Add("Hipoteca", Hipoteca);
 
		CrearBotones(Asesor1, dic_Tipos_Asesor1);
		CrearBotones(Asesor2, dic_Tipos_Asesor2);
		CrearBotones(Asesor3, dic_Tipos_Asesor3);
 
		cbxTipoTurno.SelectedIndex = 0;
 
	}
 
	public void CrearBotones(GroupBox Grupo, Dictionary<string, Turno> Tipos)
	{
		int top = 15;
 
		Button btn = new Button();
		btn.Name = "btn" + Grupo.Name;
		btn.Text = "Siguiente Turno";
		btn.Tag = Tipos;
		btn.Width = 196;
		btn.Height = 24;
		btn.Top = top;
		btn.Click += Btn_Click;
		Grupo.Controls.Add(btn);
	}
 
	private void Btn_Click(object sender, EventArgs e)
	{
		Button btn =(Button) sender;
		Dictionary<string, Turno> dic_Tipos_Asesor = (Dictionary<string, Turno>)btn.Tag;
		Dictionary<System.DateTime, Turno> Pendientes = new Dictionary<System.DateTime, Turno>();
 
		foreach (KeyValuePair<string, Turno> turno_ in dic_Tipos_Asesor) {
			foreach (KeyValuePair<System.DateTime, Tipo_> tiempo in Tiempos) {
				if (tiempo.Value == turno_.Value.Tipo) {
					Pendientes.Add(tiempo.Key, turno_.Value);
				}
			}
		}
 
		if (Pendientes.Count == 0) {
			MessageBox.Show("No hay mas turno pendientes.", "Mensaje de turno");
			return;
		}
 
		dynamic siguiente = Pendientes.OrderBy(p => p.Key).First();
		Turno turno = siguiente.Value;
		System.DateTime fecha = siguiente.Key;
 
		turno.turno += 1;
		if (turno.turno > turno.Numero) {
			MessageBox.Show("No hay mas turno pendientes para " + turno.Tipo.ToString() + ".", "Mensaje de turno");
			turno.turno -= 1;
			return;
		}
		Tiempos.Remove(fecha);
		MessageBox.Show("El turno para " + turno.Tipo.ToString() + " es: " + turno.turno, "Mensaje de turno");
        listBox1.Items.Insert(0, "Turno Numero" + " " + turno.turno + " " + "de "+ turno.Tipo.ToString() +" " + btn.Parent.Text);
 
	}
 
	private void BtnGenTurno_Click(object sender, EventArgs e)
	{
		Tipo_ Tipo = (Tipo_)cbxTipoTurno.SelectedIndex;
		switch (Tipo) {
			case Tipo_.Ninguno:
				MessageBox.Show("Debe Seleccionar un tipo de turno.", "Mensaje de turno");
				cbxTipoTurno.Focus();
				return;
 
				break;
			case Tipo_.libranza:
				libranza.Numero += 1;
                MessageBox.Show("Su turno de libranza es # " + libranza.Numero, "Mensaje de turno");
				cbxTipoTurno.SelectedIndex = 0;
 
                break;
			case Tipo_.Ahorro:
				Ahorro.Numero += 1;
                MessageBox.Show("Su turno de Ahorro es # " + Ahorro.Numero, "Mensaje de turno");
				cbxTipoTurno.SelectedIndex = 0;
				break;
			case Tipo_.Hipoteca:
				Hipoteca.Numero += 1;
                MessageBox.Show("Su turno de Hipoteca es # " + Hipoteca.Numero, "Mensaje de turno");
				cbxTipoTurno.SelectedIndex = 0;
				break;
			case Tipo_.Cartera:
				Cartera.Numero += 1;
                MessageBox.Show("Su turno de Cartera es # " + Cartera.Numero, "Mensaje de turno");
				cbxTipoTurno.SelectedIndex = 0;
				break;
		}
		Tiempos.Add(DateTime.Now, Tipo);
	}
 
    private void button1_Click(object sender, EventArgs e)
    {
        Espera frm = new Espera();
        frm.asignardatos(Tiempos);
        frm.Show();
    }
 
    private void Turnero_Load_1(object sender, EventArgs e)
    {
        this.BackColor = System.Drawing.Color.LightBlue;
    }
 
     }
 
 
public class Turno
{
	public Turnero.Tipo_ Tipo;
	public int Numero;
	public int  turno;
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder