PDA

View Full Version : سوال: استفاده از thread در برنامه برای تابع



vB.N3T
دوشنبه 13 دی 1395, 23:50 عصر
سلام مهندسین عزیز
برنامه من از 10 تا تابع , تشکیل شده
که در هر تابع عملیات اینسرت یا اپدیت صورت میگیره
حالا امکان داره چند تا از این توابع صدا زده بشه
و تعداد رکورد ها هم بالا باشه , همین باعث ایجاد کندی سرعت یا مشکلات هنگی بشه
برای جولوگیری از این کار باید چیکار انجام بدم؟؟
این نمونه کدم هست ..فقط تعداد دستورذت INSERT حدود90 دستوره

bool Jahab_Cheshmeh(int Jahab_BahrehBardaran_rowid, int last_inserted_id)
{
bool result = true;
try
{

string sql2 = "select * from Jahab_Cheshmeh where Jahab_BahrehBardaran_rowid={0}";
sql2 = string.Format(sql2, Jahab_BahrehBardaran_rowid);
SQLiteDataAdapter connect4 = new SQLiteDataAdapter(sql2, connection4);
DataSet ds4 = new DataSet();
connect4.Fill(ds4);


for (int i = 0; i < ds4.Tables[0].Rows.Count; i++)
{

//insert into Jahab_Cheshmeh from ds4.Tables[0].Rows[i]["User_Insert"].ToString();

}

Mahmoud.Afrad
سه شنبه 14 دی 1395, 10:08 صبح
به جای استفاده از حلقه برای درج ، میتونید از SqlBulkCopy استفاده کنید.
اگر تعداد رکوردها زیاد هست ، برای کنترل حافظه ، از صفحه بندی استفاده کنید. با دریافت هر صفحه از رکوردها، عمل درج رو با SqlBulkCopy انجام بدید.
استفاده از thread هم برای اینکه UI هنگ نکنه میتونه مفید باشه.

اما اینکه گفتید 10 تابع ، 90 دستور insert باید توضیح بیشتری بدید. یک بزارید. و اینکه این متدها به هم وابسته هستند. دستورات insert چطور؟