niloofar13
شنبه 14 تیر 1393, 13:31 عصر
سلام من در برنامم لیستی از اشیا دارم که به صورت پویا و در یک حلقه for پر می شود. لازم است در این حلقه بررسی شود که اگر شی موردنظر قبلا در لیست درج شده دیگر درج نشده و متغییری مربوط به آن شی افزایش یابد. برای این کار از توابع list.find و list.indexof استفاده کرده ام چون این دو تابع زمان اجرای کندی دارند تصمیم گرفتم از یک hashtable استفاده کنم که کلید آن مقداری از شی و مقدار آن محل قرارگیری آن شی در لیست است تا بدینصورت سرعت را افزایش دهم. اما به محض اضافه کردن این کد به برنامه, دیگه برنامه اجرا نشد و در هر اجرا پیغام ContextSwitchDeadlock was detected را داد. البته من در برنامم از یک hashtable دیگه هم استفاده کردم . لطفا راهنمایی ام کنید که مشکل از چیه و چرا این خطا رو میده؟ البته به محض اینکه برنامه را به حالت قبلی برمیگردونم جواب میده ولی چون سرعت برنامه پایینه و می خوام افزایش بدم دوست دارم دو تابع list.find و list.indexof را حذف کنم .