PDA

View Full Version : بهترین راه برای پیدا کردن تردهای زنده برنامه



pouria_bayat
سه شنبه 11 فروردین 1394, 00:25 صبح
سلام دوستان خسته نباشید، بنده یک برنامه نوشتم که تعداد خط کدها و توابع و همچنین تردهای اون زیاد شدن در ابتدا شاتباهی که من کردم این بود که همیشه برنامه رو با خود ویژوال استودیو stop میکردم اما در حال حاظر به مشگل برخوردم و اینکه الان برای خروج از برنامه توسط خود برنامه برنامه به درستی بسته نمیشه و احساس میکنم جایی تردی فعال هستش که اجازه نمیده با دستور Application.Exit() برنامه رو خاتمه بدم آیا راهی هست که بشه از طریق Visual Studio فهمید که چه تردهایی از برنامه هنوز در حال فعالیت هستند و اینکه چرا برنامه بسته نمیشه!!!؟

llMMDll
سه شنبه 11 فروردین 1394, 01:00 صبح
سلام
زمانی که برنامه ات در VS در حال اجراست (در حالت دیباگ)
Ctrl+Alt+H رو که بزنی منوی threads باز میشه ----------- Debug >>>Windows >>> Threads
ولی فکر کنم شما Processes بیشتر به دردت بخوره (Ctrl+Alt+Z)
Debug >>>Windows >>> Processes

pouria_bayat
سه شنبه 11 فروردین 1394, 01:58 صبح
ممنون اینکارو کردم ولی الان متوجه شدم برنامه بخاطر کار با دیتابیسم بسته نمیشه من از linq و DataContext استفاده میکنم برای خواندن اطلاعات از دیتابیس با یک دستور Foreach وقتی که Break all میزنم همچین خطایی میبینم:

ADO.NET:Execute Reader "SELECT [t3].[Houre], [t3].[Minute], [t3].[Secound]
SELECT [t0].[Id]
FROM [ServiceSetting] AS [t0]
GROUP BY [t0].[Id]
) AS [t1]
CROSS APPLY (
...
) AS [t3]" was executed on connection "Integrated Security=SSPI;Persist Security Info=False;Data Source=.\sqlexpress;AttachDbFilename=...\C#‎‎ Prog\...\DB.mdf", building a SqlDataReader.
Time: 3/31/2015 2:37:08 AM
Thread:<No Name>[8604]
و وقتی که با دیتابیس کار نمیکنم به درستی برنامه بسته میشه! مشگل کار به نظرتون کجاست؟!

am_al_59
سه شنبه 11 فروردین 1394, 23:11 عصر
منم اون مشکل رو با linq داشتم بهترین کار استفاده از متدهای shutdown یا quit در app و application هست.