Asp.Net - Aynı Anda 2 Farklı Thread Çalıştırmak
-
arka planda yapmam gereken işlemler için kullanıcıyı bekletmek istemiyorum. bunun içinde bazı durumlarda iki thread çalıştırmak zorundayım.
IIS üzerinde çalıştırdığım zaman sadece ilk thread işlem yapıyor. local'de çalıştırdığım zaman 2side sıkıntısız çalışıyor.
örnek vermek gerekirse bir işlem sonunda bir thread gidip facebook'a post atıyor, diğeride mail atıyor vb.. gibi.
IIS üzerinde bunun bir ayarı var mıdır? ya da başka bir çözüm yolu?
-
message queu kullanacaksın
-
hocam onu gördüm ama parametre olayı çok hoşuma gitmedi.
task.run, task.factory.run, threadstart, async vb.. baya bir opsiyon yapmışlar. belki IIS üzerinde bir ayarı vardır diye düşündüm. yoksa mecbur o yola gideceğim.
-
teşekkürler hocam.
lambra olarak kullanımı mevcutmuş. başkaları için örnek bırakayım =>
TestClass test = new TestClass(); string s1 = "Hello"; string s2 = "World"; ThreadPool.QueueUserWorkItem( o => test.DoWork(s1, s2) );
-
Sanıyorum yazdığın kodda problem var hocam. Task'larla bunun yapılabildiğini biliyorum. Yazdığın methodu buraya veya dm ile atabilir misin, yardımcı olmaya çalışayım.
Son mesajını şimdi gördüm, şöyle bir ekleme yapayım. Threadpool'da kaç thread var, kaçı müsait, kaçını kullandım vs vs uğraşmamak için Task kullanmak daha mantıklı.
MadJack tarafından 09/Nis/17 12:00 tarihinde düzenlenmiştir -
MadJack bunu yazdı
Sanıyorum yazdığın kodda problem var hocam. Task'larla bunun yapılabildiğini biliyorum. Yazdığın methodu buraya veya dm ile atabilir misin, yardımcı olmaya çalışayım.
Son mesajını şimdi gördüm, şöyle bir ekleme yapayım. Threadpool'da kaç thread var, kaçı müsait, kaçını kullandım vs vs uğraşmamak için Task kullanmak daha mantıklı.
hocam Task kullanıldığında da aynı problem oluyor malesef. kodda problem kesin yok, çünkü aynı methoduda çağırsamda ilkini yapıp, ikincisini yapmıyor. local'de çalıştığın zaman problem yok. IIS üzerine koyduğun zaman böyle oluyor.
sandman'ın önerisi üzerine kodları ThreadPool QueueUserWorkItem kullanacak bi yapıya değiştiriyorum. sonrasında teste eklicem. başarısız olursa yine yazarım.
-
Hocam bu işi asp.net de thread ile yapmak sıkıntı. O işin tamamlanacağından emin olamazsın. O yüzden bu tür işleri @sandman 'ın dediği gibi Queue'ya atıp, ayrı bir console uygulaması vs. gibi IIS bağımsız (oturum sonlanabilir, IIS kapanabilir, restart olabilir vs.vs.vs.) bir uygulamada işi yaptırman en sağlıklısı olacaktır.
Ha illa Asp.net ile yaptıracam diyorsan zamanında yapmıştım internette bu konu için Nuget paketleri filanda vardı onlara bakabilirsin.