PDA

View Full Version : سوال: Collection was modified after the enumerator was instantiated



Faraz7
چهارشنبه 10 اسفند 1390, 18:57 عصر
توجه:این تاپیک تکراری نیست. پس آن را حذف نکنید.

for (int i = G; i >= 1; i--)
{
for (int j = 0; j < i; j++)
aim.Location = new Point(aim.Location.X, aim.Location.Y - 1);
Thread.Sleep(THREAD_SLEEP1);
}

تو برنامه ی من وقتبه این خط میرسه گاهی اوقات این exception رو میده:
Collection was modified after the enumerator was instantiated
لازم به ذکره که aim یه picturebox ه.در ضمن من 3 تا ترد دارم که تو دو تاش این دستور واسه 2 تا aim متفاوت انجام میشه و یکیش هم که ترد اصلی خود برنامه است.

gwbasic
چهارشنبه 10 اسفند 1390, 19:15 عصر
خطا مشخص هست شما روی collection ای دارید پیمایش می کنید که در حین پیمایش تغییر کرده است ولی اطلاعاتتون ناقص هست از این خط کدها نمی شه چیزی فهمید.
احتمالا جایی دارید این به فرم یا کانتینرهای داخل اون کنترلی اضافه می کنید همزمانی که دارید پیمایش می کنید. البته این فقط یک حدس هست

Faraz7
چهارشنبه 10 اسفند 1390, 19:29 عصر
ولی من که هیچ collection ی ندارم در ضمن گفتم که ممکنه تو اجرای یه برنامه بعد از 10_20 بار اجرا شدن ارور بده.یعنی بعضی اوقات درسته.

gwbasic
پنج شنبه 11 اسفند 1390, 02:39 صبح
کنترل های فرم در یک collection قرار می گیرند.
اگر متن کامل exception رو با متن InnerException بگذارید ممکنه بیشتر کمک کنه