1-) C# RMOS - task kullanımı
1.1-) ÖZELLİKLER
List<Task> tasks = new List<Task>();
tasks.Add(Task.Run(() => sadeceKontenjanGuncelle(Bas_Tar, Bit_Tar, Acentex_Konum, Kalan)));
await Task.WhenAll(tasks);
çakışmaması için
gridControlTarih.Invoke((MethodInvoker)delegate
{
gridControlTarih.DataSource = erkenTarihModels;
});
DİĞER
System.Windows.Forms.Form.CheckForIllegalCrossThreadCalls = false;
System.Threading.Tasks.Task.Factory.StartNew(() =>{// do something});
var task1 = Task.Factory.StartNew(() => cimriCekAsync());
await Task.WhenAll(task1);
this.Invoke(new MethodInvoker(async () =>{ }));
1.2-) YENİ C# MASAÜSTÜ TASK KULLANIMI
private async void btnCimriAkakceCek_ClickAsync(object sender, EventArgs e) { loadingAc(); var task1 = Task.Factory.StartNew(() => cimriCekAsync()); await Task.WhenAll(task1); loadingKapat(); }
public async Task cimriCekAsync() {
this.Invoke(new MethodInvoker(async () => { CimriApi api = null;
for (int i = 0; i < gridView1.DataRowCount; i++) { int proxySayac = i % proxyLists.Count; api = new CimriApi(proxyLists[proxySayac].proxyHost, proxyLists[proxySayac].proxyPort); try { loadingAc(); SplashScreenManager.Default.SetWaitFormDescription(i + "/" + gridView1.DataRowCount + "\nYükleniyor...");
} } catch (Exception ex) {
} if (!txtSaniye.Text.Equals("0")) { await Task.Delay(Convert.ToInt32(txtSaniye.Text)*1000); }
} }));
}
public void loadingAc() { SplashScreenManager.ShowForm(this, typeof(WaitForm1), true, true, false); }
public void loadingKapat() { SplashScreenManager.CloseForm(false); }
|
2-) task kullanımı burada 4 saniye program kilitlenmeden işlemini yapar
private async System.Threading.Tasks.Task KapatAsync()
{
await System.Threading.Tasks.Task.Delay(4000);
labelUyari.Visible = false;
}
3-) APİ DE TASK KULLANIMI
using AracOtoApi.Controllers.Fugo;
using AracOtoApi.Models;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Http.Description;
namespace AracOtoApi.Controllers.TumKatolog
{
public class TumKatalogController : ApiController
{
List<AracGenelResModel> aracGenelResModels = new List<AracGenelResModel>();
[Route("api/TumKatalog/getTumKatalog")]
public async Task<object> getTumKatalog(string kod)
{
var task1 = Task.Factory.StartNew(() => getFugoAracModel(kod));
var task2 = Task.Factory.StartNew(() => getFourceAracModel(kod));
var task3 = Task.Factory.StartNew(() => getStarShopAracModel(kod));
await Task.WhenAll(task1, task2, task3);
return aracGenelResModels;
}
[ApiExplorerSettings(IgnoreApi = true)]
public async Task<List<AracGenelResModel>> getFugoAracModel(string kod)
{
List<AracGenelResModel> models = new List<AracGenelResModel>();
string userName = "aa";
string password = "aa!";
string url = ""; string katalogid = "";
FugoGenelController genelController = new FugoGenelController();
//models = genelController.Cek(kod, userName, password, url, katalogid);
List<AracGenelResModel> fugoList = (List<AracGenelResModel>)genelController.Cek(kod, userName, password, url, katalogid);
aracGenelResModels.AddRange(fugoList);
return fugoList;
}
[ApiExplorerSettings(IgnoreApi = true)]
public async Task<List<AracGenelResModel>> getFourceAracModel(string kod)
{
List<AracGenelResModel> models = new List<AracGenelResModel>();
string userName = "cc";
string password = "cc";
string url = ""; string katalogid = "";
FourceGenelController genelController = new FourceGenelController();
List<AracGenelResModel> fourceList = (List<AracGenelResModel>)genelController.cek(kod, userName, password, url, katalogid);
aracGenelResModels.AddRange(fourceList);
return fourceList;
}
[ApiExplorerSettings(IgnoreApi = true)]
public async Task<List<AracGenelResModel>> getStarShopAracModel(string kod)
{
List<AracGenelResModel> models = new List<AracGenelResModel>();
GenelController genelController = new GenelController();
models = genelController.Cek(kod, "cc", "cc", "", "");
aracGenelResModels.AddRange(models);
return models;
}
}
}