امير ميركمالي

Amir Mirkamali
166 - پیام , 207 - نظر

پیوندهای اصلی

اخبار

با تشکر از آقای مهندس طاهریان که در این مسیر، همواره راهنمای بنده بوده اند.
امیر میرکمالی

Check PageRank

بایگانی پیامها

بایگانی سال ۱۳۸۷

خرداد ۱۳۸۷، (۱)

بایگانی سال ۱۳۸۶

اسفند ۱۳۸۶، (۱)
بهمن ۱۳۸۶، (۱)
آذر ۱۳۸۶، (۱)
آبان ۱۳۸۶، (۵)
مهر ۱۳۸۶، (۲)
شهریور ۱۳۸۶، (۴)
مرداد ۱۳۸۶، (۲)
تیر ۱۳۸۶، (۲)
خرداد ۱۳۸۶، (۴)
اردیبهشت ۱۳۸۶، (۱۱)
فروردین ۱۳۸۶، (۴)

بایگانی سال ۱۳۸۵

اسفند ۱۳۸۵، (۲)
بهمن ۱۳۸۵، (۲)
آبان ۱۳۸۵، (۴)
شهریور ۱۳۸۵، (۴)
مرداد ۱۳۸۵، (۳)
تیر ۱۳۸۵، (۳)
خرداد ۱۳۸۵، (۱)
اردیبهشت ۱۳۸۵، (۸)
فروردین ۱۳۸۵، (۲)

بایگانی سال ۱۳۸۴

اسفند ۱۳۸۴، (۶)
بهمن ۱۳۸۴، (۷)
دی ۱۳۸۴، (۴)
آذر ۱۳۸۴، (۱۱)
آبان ۱۳۸۴، (۱۰)
مهر ۱۳۸۴، (۹)
شهریور ۱۳۸۴، (۵)
مرداد ۱۳۸۴، (۵)
تیر ۱۳۸۴، (۱۱)
خرداد ۱۳۸۴، (۲)
اردیبهشت ۱۳۸۴، (۱۰)
فروردین ۱۳۸۴، (۱۲)

بایگانی سال ۱۳۸۳

اسفند ۱۳۸۳، (۵)
بهمن ۱۳۸۳، (۲)

دسته بندی پیامها

(rss) ASP NET
(rss) ASP Net 2.0
(rss) General
(rss) Microsoft SQL Server

گالری عکسها

عکس های من


اخبار


دوستان و همکاران

Mirkamali
پایگاه اطلاع رسانی نمایشگاه ها، صنایع و تجارت ایران
پوریا
دعوت دوست
علیرضا محمدمیرزا
لغت نامه
کاراپرداز

رادکام

حمید طاهریان
شیما دهباشی
مجید اطلس باف
محسن طاهریان

خطای Thread was being aborted - خطای Thread ناتمام در DotNet

اگر در یک try – catch با یکی از دستورات Server.Transfer یا Response.Redirect از block خارج شوید، چنین خطایی دریافت می‏ کنید. علت نیز کاملا واضع است. چون شما Thread مربوطه را بلا تکلیف رها می‏ کنید و قبل از پایان یافتن کار آن Thread ، می ‏خواهید آن را ترک کنید.  و در صورتی که در catch دستوری قرار داده باشید تا به کاربر اعلام کنید که خطایی اتفاق افتاده است. بدیهی است که عمل موردنظر، با موفقیت انجام شده است ولی کاربر خطا دریافت خواهد کرد.

یکی راه‏ های مقابله با این خطا این است که اگر می‏ خواهید از دستورات بالا استفاده کنید، یک متغیر منطقی (Boolean) بگیرید و در صورتی که عمل موردنظر موفقیت ‏آمیز بود، آن را با مقدار true مقداردهی کنید و بیرون از بدنه try – catch در صورت درست بودن متغیر به آدرس موردنظر خود redirect کنید.

راه بعدی این است که نوع خطا را بررسی کنید، در صورتی که با خطای بالا یکی بود، از آن صرف نظر کنید.
وضعیت Thread در ThreadState نگهداری می ‏شود. با and کردن ThreadState با مقادیری که نمی‏ خواهید به ازای آنها خطایی اتفاق بیفتد (مثل Aborted) به نتیجه دلخواه خود را برسید. (وضعیت Thread به صورت بیتی نگهداری می ‏شود و اگر چند مورد از وضعیت ها با هم اتفاق بیفتند با هم Or می‏شوند.)
مثال :

if ((Thread.CurrentThread.ThreadState & (ThreadState.Aborted | ThreadState.AbortRequested)) == 0)
{
    Do Something
}
 

ارسال شده در تاریخ ۵ تیر ۱۳۸۴ - 3:55 عصر

نظرات

# پاسخ به: خطای Thread was being aborted - خطای Thread ناتمام در DotNet  

مقاله ی کوتاهی در مورد threading در سایت قرار داده شده است، امیدوارم که کمکی بکند.
۱۸ بهمن ۱۳۸۴ - 4:35 عصر | امیر میرکمالی

ارسال نظرات

عنوان:  
نام:  
آدرس الکترونیکی:
زبان:
توضیح:  
لطفا متن مقابل را در زیر وارد کنید
(کوچک یا بزرگ بودن حروف مهم نیست)