خوب باید ببینید مشکل چی هست تا ببینید اصلا نیازی به Transaction یا MultiThreading دارید یا نه؟
اگه با خطای خاصی مواج میشید که باید خطا رو بررسی و رفع کنید.اگه کد صحیح باشه معمولا نباید خطایی پیش بیاد.
اگه میخوایین در صورت بروز خطایی که انتظارش رو نداشتین در حین کار، دیتابیس به حالت قبل برگرده، میتونید از Transaction استفاده کنید، در صورتی که فقط با 1 کانکشن کار کنید، در مورد کلاینت سرور بودن مشکلی نیست و میتونید از SqlTranscation استفاده کنید:
using (SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["T3"])) {
cn.Open();
using (SqlTransaction tr = cn.BeginTransaction()) {
//some code
tr.Commit();
}
}
لینک در MSDN
---
در مورد MultiThreading هم، منظورتون رو از تقسیم بندی نمیفهمم.کاری که میشه کرد اینه که در صورتی که واسط کاربری دارین، میتونین کل کار رو توی یک Thread دیگه انجام بدین تا UI هنگ نکنه...