using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading; namespace caThreadSqlUpdate { class Program { private static SqlConnection cnn = new SqlConnection("Data Source=10.130.214.200,8585;Initial Catalog=ERecete;User Id=kullanici;Password=sifre;"); static void Main(string[] args) { if (cnn.State != ConnectionState.Open) { cnn.Open(); } SqlCommand cmd = cnn.CreateCommand(); cmd.CommandText = "select ereceteIlacListe_id,barkod FROM dbo.EReceteIlacListesi"; SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); Dictionary<IAsyncResult, Action<int, string>> li = new Dictionary<IAsyncResult, Action>(); int i = 0; foreach (DataRow row in ds.Tables[0].Rows) { i++; Action<int, string> act = f_BarkodGuncelle; IAsyncResult ai = act.BeginInvoke((int)row[0], (string)row[1], delegate { Console.WriteLine("Bitti: " + row[0] + " ve " + row[1]); }, null); li.Add(ai, act); if (i == 5) { break; } } while (true) { foreach (var key in li.Keys) { if (key.IsCompleted && li[key] == null) { Console.WriteLine("End invoke çağırdım"); li[key].EndInvoke(key); li[key] = null; } } Thread.Sleep(1000); } } static public void f_BarkodGuncelle(int _iIlacId, string _sBarkod) { SqlCommand cmd = cnn.CreateCommand(); cmd.CommandText = String.Format("UPDATE dbo.yedekEReceteIlaclari SET barkod={0} WHERE refEreceteIlacListe_id={1} ", _sBarkod, _iIlacId); cmd.ExecuteNonQuery(); } } }
Aklımda Kalası Kelimeler
* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur
ParameterizedThreadStart etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
ParameterizedThreadStart etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
2 Nisan 2013 Salı
Action kullanarak multi thread sql update
Etiketler:
Action,
BeginInvoke,
Dictionary,
EndInvoke,
IAsyncResult,
ParameterizedThreadStart,
Thread
4 Mart 2011 Cuma
Çeşitli Thread yöntemleri
private void btnUpdate_Click(object sender, EventArgs e)
{
if (pc != null)
{
Commander cmd = new Commander(pc);
new Thread(new ThreadStart(delegate()
{
int i = pc.ToplamOkunacakByte;
MessageBox.Show(i.ToString());
})).Start();
// pc formun SerialPort okuma işini yapan objeyi barındıran sınıfının örneği
new Thread(new ThreadStart(() =>
{
int i = pc.ToplamOkunacakByte;
MessageBox.Show(i.ToString());
})).Start();
// pb form üzerindeki ProgresBar dır (private System.Windows.Forms.ProgressBar pb;)
pb.Maximum = 100;
pb.Value = 0;
// Thread e parametre olarak pb yi veriyor,
// delegesinde ise p olarak kullanıyoruz.
new Thread(new ParameterizedThreadStart((p) =>
{
for (int i = 0; i < 100; i++)
{
Thread.Sleep(10);
((ProgressBar)p).Value++;
}
})).Start(pb);
}
}
Kaydol:
Kayıtlar (Atom)